home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / FAQSYS18.ZIP / FAQS.DAT / MCONTROL.FAQ < prev    next >
Internet Message Format  |  1995-12-12  |  144KB

  1. Path: senator-bedfellow.mit.edu!faqserv
  2. From: sibit@datasrv.co.il (Russ Hersch)
  3. Newsgroups: comp.robotics,comp.sys.intel,comp.sys.m68k,comp.sys.6809,sci.electronics,alt.comp.hardware.homebuilt,comp.answers,sci.answers,alt.answers,news.answers
  4. Subject: Microcontroller primer and FAQ
  5. Supersedes: <microcontroller-faq/primer_793809409@rtfm.mit.edu>
  6. Followup-To: poster
  7. Date: 30 Mar 1995 22:41:42 GMT
  8. Organization: none
  9. Lines: 3199
  10. Approved: news-answers-request@MIT.EDU
  11. Expires: 14 May 1995 22:39:04 GMT
  12. Message-ID: <microcontroller-faq/primer_796603144@rtfm.mit.edu>
  13. NNTP-Posting-Host: bloom-picayune.mit.edu
  14. Summary: This article is a primer and general FAQ about microcontrollers.
  15. X-Last-Updated: 1995/03/30
  16. Originator: faqserv@bloom-picayune.MIT.EDU
  17. Xref: senator-bedfellow.mit.edu comp.robotics:19277 comp.sys.intel:42593 comp.sys.m68k:8399 sci.electronics:125294 alt.comp.hardware.homebuilt:8692 comp.answers:10946 sci.answers:2391 alt.answers:8396 news.answers:41003
  18.  
  19. Archive-name: microcontroller-faq/primer
  20. Posting-Frequency: monthly
  21. Last-modified: Mar. 30, 1995
  22.  
  23. This article is a primer and general FAQ about microcontrollers.
  24. Included is a collection of information sources on various
  25. microcontrollers.
  26.  
  27. The following topics are addressed:
  28.  
  29.        0)  Rantings and ravings (to make the FAQ zero-based)
  30.  
  31.        1)  ABOUT THIS FAQ
  32.      1.1)  Who put this FAQ together?
  33.      1.2)  How can I contribute to this FAQ?
  34.      1.3)  What newsgroups will this FAQ be posted to?
  35.      1.4)  May I distribute this FAQ or post it somewhere else?
  36.  
  37.        2)  MICROCONTROLLERS
  38.      2.1)  What is a Microcontroller?
  39.      2.2)  Applications
  40.      2.3)  Flavors
  41.  
  42.        3)  THE MICROCONTROLLER MARKET
  43.      3.1)  Shipments
  44.      3.2)  Industrial applications
  45.      3.3)  Deciding whose microcontroller to use
  46.      3.4)  The players
  47.  
  48.        4)  MICROCONTROLLER FEATURES
  49.      4.1)  Fabrication techniques
  50.      4.2)  Architectural features
  51.      4.3)  Advanced Memory options
  52.      4.4)  Power Management and Low Voltage
  53.      4.5)  I/O
  54.      4.6)  Interrupts
  55.      4.7)  Special microcontroller features
  56.  
  57.        5)  SOME POPULAR MICROCONTROLLERS
  58.  
  59.        6)  GETTING STARTED WITH MICROCONTROLLERS
  60.      6.1)  Evaluation Kits/Boards
  61.      6.2)  Easy chips to use
  62.      6.3)  Software (cheap and easy)
  63.  
  64.        7)  MICROCONTROLLER PROGRAMMING LANGUAGES
  65.      7.1)  Machine/Assembly language
  66.      7.2)  Interpreters
  67.      7.3)  Compilers
  68.      7.4)  Fuzzy Logic and Neural Networks
  69.  
  70.        8)  DEVELOPMENT TOOLS
  71.      8.1)  Simulators
  72.      8.2)  Resident Debuggers
  73.      8.3)  Emulators
  74.      8.4)  Good Stereo System
  75.  
  76.        9)  FINDING OUT MORE ABOUT MICROCONTROLLERS
  77.      9.1)  Books
  78.      9.2)  Data and Reference Books
  79.      9.3)  Periodicals
  80.      9.4)  Internet newsgroups
  81.      9.5)  Internet sources of information on specific microcontrollers
  82.  
  83.       10)  MICROCONTROLLER FREE SOFTWARE SOURCES
  84.     10.1)  FTP sites
  85.     10.2)  WEB pages
  86.     10.2)  BBSs
  87.     10.3)  Mailing lists
  88.  
  89.  
  90. 0)  Rantings and ravings
  91.  
  92.     Disclaimer:  Just so it is understood, the "rantings and ravings" are
  93.     my rantings and ravings.  My readers are refined and sophisticated
  94.     and would never rant or rave.  I, on the other hand, sit in front of
  95.     the TV in torn underwear and drink beer out of the bottle.
  96.  
  97.  
  98.     My sincerest apologies to anyone that wrote to me, and didn't get a
  99.     reply.  I was inundated this time, and I'm afraid that I wasn't too
  100.     careful in keeping track of my email.  Also, some of those I did
  101.     respond to didn't hear from me because their email addresses were
  102.     invalid (or, at least my system thinks so).  So, if you feel
  103.     neglected, or you submitted some information that didn't make it into
  104.     this month's update, please drop me a note and let me know.  A
  105.     thousand pardons!
  106.  
  107.  
  108.     Well, the verdict is in.  No, I'm not talking about OJ - I'm talking
  109.     about one-part FAQs versus multi-part.  The response has been nearly
  110.     unanimous to keep the FAQs in one piece.  So, one piece it is.
  111.  
  112.  
  113.     Lots of good stuff this time...
  114.  
  115.     Thanks to Olaf 'Olu' Pfeiffer of Hitex who has made this FAQ
  116.     available on a web page:
  117.     http://www.ba-karlsruhe.de/automation/ctrl/FAQ/microFAQ/microFAQ.html
  118.  
  119.     Thanks to Ted MacDonald for the following hint:  "If you contact
  120.     Motorola at 800-521-6274 and order literature #M68HC11RM/AD, they
  121.     will send, free of charge, a reference manual for the 6811.  Thought
  122.     this might be useful for others."
  123.  
  124.  
  125.     National Semiconductor / MetaLink COP8780 Evaluation/Programming Unit
  126.  
  127.        Robin Getz of National Semiconductor supplied me with a
  128.        pre-release version of the EPU.  I haven't really had much of an
  129.        opportunity to put it through its paces yet, but it's an
  130.        interesting looking new product.  This kit offers designers a
  131.        low-cost tool for an introduction to National's COP8 Basic Family
  132.        of 8-bit microcontrollers.
  133.  
  134.        This development tool gives you an inexpensive way to benchmark
  135.        and evaluate microcontroller code in real-time.  With its built in
  136.        MIRCOWIRE/PLUS interface, it can interface to numerous
  137.        MICROWIRE/PLUS devices such as EPROMS, EEPROMS, D/As, A/Ds, DASs,
  138.        and others, to give a full featured system.  The system includes
  139.        the EPU board, 2 8780Cx parts (early kits have OTPs, later kits
  140.        will have windowed parts), assembler, debugger, sample code, a
  141.        very limited C compiler, a wall power supply, and a really great
  142.        box :-).
  143.  
  144.        The EPU is an in-circuit simulator.  It plugs into your target
  145.        system in place of an COP880C microcontroller and it executes code
  146.        using a COP8780CJ [emulator] microcontroller on the EPU board.
  147.        Like a software simulator, it does not run real time.  Hardware
  148.        and software control the microcontroller cycle-by-cycle, and break
  149.        handling and tracing are done completely through software.
  150.  
  151.        Documentation includes a COP8 Series Microcontroller User's Manual
  152.        (this is missing in the first run, you'll have to ask for one), a
  153.        comprehensive assembler manual, and various product line
  154.        literature.  The documentation on the kit itself is scant, but
  155.        gives enough information to get the job done.
  156.  
  157.        This is a nice way to get started with microcontrollers, and the
  158.        COP800 is an interesting chip with a powerful and efficient
  159.        instruction set.  For only $125, this is worth checking out.
  160.        Mention this FAQ, and I'm sure they'll be glad to double the
  161.        price.
  162.  
  163.  
  164.     Philips Semiconductor / CEIBO DS750 Devolopment Tools
  165.  
  166.        A good way to learn about 8051 programming, this kit is based on
  167.        the 8xc7xx series which are very low-end, inexpensive micros.
  168.        They are offered with less memory (1k, 2k, etc.) and fewer
  169.        features.  In fact the 83c750 sells for only $1 in very high OEM
  170.        volumes.
  171.  
  172.        The kit includes a DS750 board, source level debugger, and
  173.        utilities.  Both DOS and Windows versions of the software are
  174.        included on the diskette, and installation is a snap.  I don't
  175.        understand why, but no assembler is included!  A number of
  176.        assemblers and C compilers are compatible with (or adaptable to)
  177.        the source level debugger, including:  Keil/Franklin, IAR, and
  178.        Micro Computer Control.  If you're on a budget, the Micro Computer
  179.        Control package is only $100 - the prices of the other packages
  180.        are a bit more creative :-).  Philips also has the MetaLink
  181.        assembler available for free on their BBS.
  182.  
  183.        The DS750 has 3 operating modes:  real-time, simulator, and
  184.        simulator plus.  It plugs into your target system in place of an
  185.        87c750 (24 pin) and it executes code using an 87c752 [emulator] on
  186.        the DS750 board.
  187.  
  188.        Besides being a very nice platform for testing your code
  189.        real-time, the enclosed manual makes this package really
  190.        worthwhile.  In addition to the obligatory startup and operation
  191.        information, the book includes schematics and theory of the
  192.        board's operation.  Five experiments guide the user on
  193.        understanding the workings and capabilities of the 8051 family.
  194.  
  195.        Priced at only $100, a truckload of these have already been sold,
  196.        and for good reason.  If you're interested in learning how to use
  197.        an 8051, you can't go wrong by buying this kit.
  198.  
  199.  
  200.     Minds-Online engineering ftp site and mailing lists:
  201.  
  202.        A new ftp site (ftp.std.com:/customers2/nonprofits/minds-online)
  203.        should by now be up and running.  It will have over 100 Mbytes of
  204.        engineering material.  Chock full of compilers, assemblers, code,
  205.        articles, fuzzy logic, and much more.  This is definitely worth
  206.        checking out!
  207.  
  208.        A mailing list for announcing significant postings on this ftp
  209.        site is being gathered.
  210.  
  211.        Another mailing list, this one MODERATED, will carry messages from
  212.        real engineers who are working on designs slated for volume
  213.        production.  "No tire-kickers, no students, no academics, no
  214.        sleazy something-for-nothing ripoff artists, no hobbyists, and no
  215.        totally lost people will be able to post e-mail."  (Uh, it looks
  216.        like that sort of leaves out yours truly, I certainly belong in
  217.        several, if not most, of those categories).
  218.  
  219.        If you would like to be on one or both of these lists, send your
  220.        email address to: csmall@tiac.net.  Put a good word in for me
  221.        while you're at it, my mind's usually off-line :-).
  222.  
  223.  
  224.     New book out!
  225.  
  226.        A great book just landed on my desk.  Not exactly about
  227.        microcontrollers, but it isn't another silly book by or about
  228.        Madonna either.  The book is Posix.4: Programming for the Real
  229.        World by Bill O. Gallmeister and published by O'Reilly and
  230.        Associates.  Written with a Unix perspective, the book is about
  231.        programming in the real world.  Yeah, here's our connection with
  232.        microcontrollers.  You know - microwave ovens, car braking
  233.        systems, mother-in-law detectors :-).  Part I of the book
  234.        describes the Posix standard (what it is, what it isn't, and what
  235.        it's for), and explains the principles of real time programming
  236.        (tasking, messages, scheduling, I/O, and performance) and why Unix
  237.        isn't fit for real-time programming.  Part II is a reference on
  238.        the Posix functions and header files.  Part III contains much of
  239.        the code for the exercises in the book.
  240.  
  241.        I'm enjoying this book - highly recommended!
  242.  
  243.  
  244.     Take care of yourselves,
  245.  
  246.               Uncle Russ
  247.  
  248.  
  249. 1)  ABOUT THIS FAQ
  250.  
  251. 1.1)  Who put this FAQ together?
  252.  
  253.     From time to time, general questions about microcontrollers (from
  254.     beginners to experienced designers) pop up in the newsgroups.  It
  255.     seemed that a general primer/FAQ on microcontrollers might be useful.
  256.  
  257.     Much of this document could be considered as a sort of a primer on
  258.     microcontrollers.  For those of you with previous experience,
  259.     sections 9 and 10 might be of special interest (especially for those
  260.     of you looking for that elusive "free COBOL compiler for the 1802").
  261.  
  262.  
  263. 1.2)  How can I contribute to this list?
  264.  
  265.     I please ask that if you have any suggestions or additions, or you
  266.     would like to correct any of the information contained herein, please
  267.     send me a note.
  268.          My Email address is:  sibit@datasrv.co.il
  269.          My Smail address is:
  270.                Russ Hersch
  271.                HaVradim 11
  272.                Ginot Shomron
  273.                ISRAEL
  274.  
  275.     Thanks to recent contributors to this document:
  276.             Dave Dunfield (Dunfield Development Systems)
  277.             Cecil Moore (Intel)
  278.             Ed Thompson (Micro Computer Control Corporation)
  279.             Kevin Gardner (Philips Semiconductor)
  280.             Victor Weiman (CEIBO)
  281.             Matt Albright (Motorola)
  282.             Tom Mornini (Parallax, Inc.)
  283.             Ken Tindell (Uppsala University, Sweden)
  284.             Paul K. Johnson (Hewlett Packard)
  285.             Reuven Melaver (Eastronics - National Semiconductor
  286.                 Representative in Israel)
  287.             Olaf 'Olu' Pfeiffer (Hitex)
  288.             Ted MacDonald
  289.             John Piccirillo
  290.             Paul Hills
  291.             Jack Coats
  292.             Ed Sarkesian (who uses his old dirty socks to keep his
  293.                 mother-in-law away
  294.             Mike Cepek (for pointing out so many errors :-)
  295.  
  296.  
  297.     Very special thanks to Robin L. Getz (National Semiconductor) who
  298.     probably could be considered an honorary co-author of this FAQ. :-)
  299.  
  300.     Also, thanks to those who have posted questions and to those who have
  301.     posted answers.  Thanks to "my new friends" who send suggestions and
  302.     encouragement, as well as the occasional question.  Special thanks to
  303.     my mother-in-law, who thankfully will probably never read this
  304.     document ;-).
  305.  
  306.  
  307. 1.3)  What newsgroups will this FAQ be posted to?
  308.  
  309.     This FAQ will be posted to the following newsgroups:
  310.           comp.robotics
  311.           comp.sys.intel
  312.           comp.sys.m68k
  313.           comp.sys.6809
  314.           sci.electronics
  315.           alt.comp.hardware.homebuilt
  316.  
  317.     I will post once a month - on or about the 26th of each month.
  318.  
  319.  
  320. 1.4)  May I distribute this FAQ or post it somewhere else?
  321.  
  322.     I am putting no restrictions on the use of this FAQ except - It must
  323.     be distributed in its entirety with the copyright notice, and no
  324.     financial gain may be realized from it.  After all, I have spent, and
  325.     continue to spend, a lot of time on this.
  326.  
  327.     For this reason I have appended a copyright statement to the end of
  328.     this FAQ.  I feel pretty silly doing this, but I just want to protect
  329.     myself.  The copyright does not limit the use of this list for
  330.     noncommercial purposes.  I hereby give my permission to one and all
  331.     to pass this list around and post it wherever you want - as long as
  332.     it is not for financial gain.
  333.  
  334.         Thank you.
  335.  
  336.  
  337. 2)  MICROCONTROLLERS
  338.  
  339.  
  340. 2.1)  What is a Microcontroller?
  341.  
  342.     A controller is used to control (makes sense!) some process or aspect
  343.     of the environment.  A typical microcontroller application is the
  344.     monitoring of my house.  As the temperature rises, the controller
  345.     causes the windows to open.  If the temperature goes above a certain
  346.     threshold, the air conditioner is activated.  If the system detects
  347.     my mother-in-law approaching, the doors are locked and the windows
  348.     barred.  In addition, upon detecting that my computer is turned on,
  349.     the stereo turns on at a deafening volume (for more on this, see the
  350.     section on development tools).
  351.  
  352.     At one time, controllers were built exclusively from logic
  353.     components, and were usually large, heavy boxes (before this, they
  354.     were even bigger, more complex analog monstrosities).  Later on,
  355.     microprocessors were used and the entire controller could fit on a
  356.     small circuit board.  This is still common - you can find many [good]
  357.     controllers powered by one of the many common microprocessors
  358.     (including Zilog Z80, Intel 8088, Motorola 6809, and others).
  359.  
  360.     As the process of miniaturization continued, all of the components
  361.     needed for a controller were built right onto one chip.  A one chip
  362.     computer, or microcontroller was born.  A microcontroller is a highly
  363.     integrated chip which includes, on one chip, all or most of the parts
  364.     needed for a controller.  The microcontroller could be called a
  365.     "one-chip solution".  It typically includes:
  366.           CPU (central processing unit)
  367.           RAM (Random Access Memory)
  368.           EPROM/PROM/ROM (Erasable Programmable Read Only Memory)
  369.           I/O (input/output) - serial and parallel
  370.           timers
  371.           interrupt controller
  372.  
  373.     By only including the features specific to the task (control), cost
  374.     is relatively low.  A typical microcontroller has bit manipulation
  375.     instructions, easy and direct access to I/O (input/output), and quick
  376.     and efficient interrupt processing.  Microcontrollers are a "one-chip
  377.     solution" which drastically reduces parts count and design costs.
  378.  
  379.  
  380. 2.2)  Applications
  381.  
  382.     In addition to control applications such as the above home monitoring
  383.     system, microcontrollers are frequently found in embedded
  384.     applications.  Among the many uses that you can find one or more
  385.     microcontrollers:  appliances (microwave oven, refrigerators,
  386.     television and VCRs, stereos),  automobiles (engine control,
  387.     diagnostics, climate control), environmental control (greenhouse,
  388.     factory, home), instrumentation, aerospace, and thousands of other
  389.     uses.
  390.  
  391.     Microcontrollers are used extensively in robotics.  In this
  392.     application, many specific tasks might be distributed among a large
  393.     number of microcontrollers in one system.  Communications between
  394.     each microcontroller and a central, more powerful microcontroller (or
  395.     microcomputer, or even large computer) would enable information to be
  396.     processed by the central computer, or to be passed around to other
  397.     microcontrollers in the system.
  398.  
  399.     A special application that microcontrollers are well suited for is
  400.     data logging.  Stick one of these chips out in the middle of a corn
  401.     field or up in a ballon, and monitor and record environmental
  402.     parameters (temperature, humidity, rain, etc).  Small size, low power
  403.     consumption, and flexibility make these devices ideal for unattended
  404.     data monitoring and recording.
  405.  
  406.  
  407. 2.3)  Flavors
  408.  
  409.     Microcontrollers come in many flavors and varieties.  Depending on
  410.     the power and features that are needed, you might choose a 4 bit, 8
  411.     bit, 16 bit, or 32 bit microcontroller.  In addition, some
  412.     specialized versions are available which include features specific
  413.     for communications, keyboard handling, signal processing, video
  414.     processing, and other tasks.
  415.  
  416.  
  417. 3)  THE MICROCONTROLLER MARKET
  418.  
  419.     Thanks to Robin Getz of National Semiconductor for supplying much of
  420.     the material in this section.
  421.  
  422.  
  423. 3.1)  Shipments
  424.  
  425.             WorldWide Microcontroller Shipments (in millions of dollars)
  426.  
  427.             '90   '91   '92   '93   '94   '95   '96   '97   '98   '99   '00
  428.      4-bit 1,393 1,597 1,596 1,698 1,761 1,826 1,849 1,881 1,856 1,816 1,757
  429.      8-bit 2,077 2,615 2,862 3,703 4,689 5,634 6,553 7,529 8,423 9,219 9,715
  430.     16-bit   192   303   340   484   810 1,170 1,628 2,191 2,969 3,678 4,405
  431.  
  432.  
  433.                  WorldWide Microcontroller Shipments (in Millions)
  434.  
  435.              '90   '91   '92   '93   '94   '95   '96   '97   '98   '99   '00
  436.      4-bit   778   906   979  1036  1063  1110  1100  1096  1064  1025   970
  437.      8-bit   588   753   843  1073  1449  1803  2123  2374  2556  2681  2700
  438.     16-bit    22    38    45    59   106   157   227   313   419   501   585
  439.  
  440.  
  441.                                                    Source: WSTS & ICE - 1994
  442.  
  443.     If you were wondering why you should bother learning about
  444.     microcontrollers - well, the tables above should fairly scream the
  445.     answer at you.  Microcontrollers will be *BIG* business - we're
  446.     talking piles of cash - billions!
  447.  
  448.     Notice that even the lowly 4-bit device is holding its own - what use
  449.     is a 16-bit part in a toaster oven?  Also notice that the 8-bit
  450.     market just keeps growing, and will probably continue to grow.  8-bit
  451.     devices account for over half of the market, and will eventually grab
  452.     even more.  Now do you understand why every silicon manufacturer is
  453.     really pushing their 8-bit microcontrollers?
  454.  
  455.  
  456. 3.2)  Industrial applications
  457.  
  458.     Average Semiconductor Content per Passenger Automobile (in Dollars)
  459.  
  460.         '90   '91   '92   '93   '94   '95   '96   '97   '98   '99   '00
  461.      $  595   634   712   905 1,068 1,237 1,339 1,410 1,574 1,852 2,126
  462.  
  463.                                                      Source: ICE - 1994
  464.  
  465.     The automotive market is the most important single driving force in
  466.     the microcontroller market, especially at it's high end.  Several
  467.     microcontroller families were developed specifically for automotive
  468.     applications and were subsequently modified to serve other embedded
  469.     applications.
  470.  
  471.     The automotive market is demanding.  Electronics must operate under
  472.     extreme temperatures and be able to withstand vibration, shock, and
  473.     EMI.  The electronics must be reliable, because a failure that causes
  474.     an accident can (and does) result in multi-million dollar lawsuits.
  475.     Reliability standards are high - but because these electronics also
  476.     compete in the consumer market - they have a low price tag.
  477.  
  478.     Automotive is not the only market that is growing.  DataQuest says
  479.     that in the average North American's home there are 35
  480.     microcontrollers.  By the year 2000 - that number will grow to 240.
  481.     Consumer electronics is a booming business.
  482.  
  483.  
  484. 3.3)  Deciding whose microcontroller to use
  485.  
  486.     When deciding which devices to implement in a design, there are lots
  487.     of things to consider besides who else is using these devices (and
  488.     how many are they using).
  489.       - Can I expect help when I am having problems?
  490.       - What development tools are available and how much do they cost?
  491.       - What sort of documentation is available (reference manuals,
  492.         application notes, books)?
  493.       - Can I work a deal by purchasing more devices at one manufacturer?
  494.         That is, purchasing not only the microcontroller, but also
  495.         peripherals (A/D, memory, voltage regulator, etc.) from one
  496.         company).
  497.       - Do they support OTPs, windowed devices, mask parts?
  498.  
  499.  
  500. 3.4)  The players
  501.  
  502.     Here is a list of the big guys.  Keep in mind that units does not
  503.     equal dollars.  Since some companies deal primarily in higher end
  504.     devices, they need to sell fewer units to achieve a higher dollar
  505.     total.
  506.  
  507.           Company              Units (k) 1993
  508.     -----------------------------------------------
  509.           Motorola               358,894
  510.           Mitsubishi              71,674
  511.           NEC                     70,180
  512.           Hitachi                 67,873
  513.           Philips                 56,680
  514.           Intel                   46,876
  515.           SGS-Thomson             37,350
  516.           Microchip               35,477
  517.           Matsushitta             34,200
  518.           Toshiba                 32,205
  519.           National Semiconductor  31,634
  520.           Zilog                   31,000
  521.           Texas Instruments       29,725
  522.           Siemens                 20,874
  523.           Sharp                   17,505
  524.  
  525.                                          SOURCE: DataQuest June 1994
  526.  
  527.  
  528.     The above numbers are just somebody's best guess - believe them if
  529.     you want to.  Since they get paid to come up with these numbers, one
  530.     would hope that they would be fairly reliable.  However, one of these
  531.     numbers is wrong for certain (and Robin Getz won't say whether it
  532.     should be higher or lower ;-).
  533.  
  534.  
  535. 4)  MICROCONTROLLER FEATURES
  536.  
  537.     Thanks to Robin Getz of National Semiconductor who supplied some of
  538.     the material in this section.
  539.  
  540.  
  541. 4.1)  Fabrication techniques
  542.  
  543.     CMOS - Complementary Metal Oxide Semiconductor
  544.  
  545.        This is the name of a common technique used to fabricate most (if
  546.        not all) of the newer microcontrollers.  CMOS requires much less
  547.        power than older fabrication techniques, which permits battery
  548.        operation.  CMOS chips also can be fully or near fully static,
  549.        which means that the clock can be slowed up (or even stopped)
  550.        putting the chip in sleep mode.  CMOS has a much higher immunity
  551.        to noise (power fluctuations or spikes) than the older fabrication
  552.        techniques.
  553.  
  554.  
  555.     PMP - Post Metal Programming (National Semiconductor)
  556.  
  557.        PMP is a high-energy implantation process that allows
  558.        microcontroller ROM to be programmed AFTER final metalization.
  559.        Usually ROM is implemented in the second layer die, with nine or
  560.        ten other layers then added on top.  That means the ROM pattern
  561.        must be specified early in the production process, and completed
  562.        prototypes devices won't be available typically for six to eight
  563.        weeks.  With PMP, however, dies can be fully manufactured through
  564.        metalization and electrical tests (only the passivation layers
  565.        need to be added), and held in inventory.  This means that ROM can
  566.        be programmed late in production cycle, making prototypes
  567.        available in only two weeks.
  568.  
  569.  
  570. 4.2)  Architectural features
  571.  
  572.     Von-Neuman Architecure
  573.  
  574.        Microcontrollers based on the Von-Neuman architecture have a
  575.        single "data" bus that is used to fetch both instructions and
  576.        data.  Program instructions and data are stored in a common main
  577.        memory.  When such a controller addresses main memory, it first
  578.        fetches an instruction, and then it fetches the data to support
  579.        the instruction.  The two separate fetches slows up the
  580.        controller's operation.
  581.  
  582.  
  583.     Harvard Architecture
  584.  
  585.        Microcontrollers based on the Harvard Architecture have separate
  586.        data bus and an instruction bus.  This allows execution to occur
  587.        in parallel.  As an instruction is being "pre-fetched", the
  588.        current instruction is executing on the data bus.  Once the
  589.        current instruction is complete, the next instruction is ready to
  590.        go.  This pre-fetch theoretically allows for much faster execution
  591.        than a Von-Neuman architecture, but there is some added silicon
  592.        complexity.
  593.  
  594.  
  595.     CISC
  596.  
  597.        Almost all of today's microcontrollers are based on the CISC
  598.        (Complex Instruction Set Computer) concept.  The typical CISC
  599.        microcontroller has well over 80 instructions, many of them very
  600.        powerful and very specialized for specific control tasks.  It is
  601.        quite common for the instructions to all behave quite differently.
  602.        Some might only operate on certain address spaces or registers,
  603.        and others might only recognize certain addressing modes.
  604.  
  605.        The advantages of the CISC architecture is that many of the
  606.        instructions are macro-like, allowing the programmer to use one
  607.        instruction in place of many simpler instructions.
  608.  
  609.  
  610.     RISC
  611.  
  612.        The industry trend for microprocessor design is for Reduced
  613.        Instruction Set Computers (RISC) designs.  This is beginning to
  614.        spill over into the microntroller market.  By implementing fewer
  615.        instructions, the chip designed is able to dedicate some of the
  616.        precious silicon real-estate for performance enhancing features.
  617.        The benefits of RISC design simplicity are a smaller chip, smaller
  618.        pin count, and very low power consumption.
  619.  
  620.        Among some of the typical features of a RISC processor:
  621.           - Harvard architecture (separate buses for instructions and
  622.             data) allows simultaneous access of program and data, and
  623.             overlapping of some operations for increased processing
  624.             performance
  625.           - Instruction pipelining increases execution speed
  626.           - Orthogonal (symmetrical) instruction set for programming
  627.             simplicity; allows each instruction to operate on any
  628.             register or use any addressing mode; instructions have no
  629.             special combinations, exceptions, restrictions, or side
  630.             effects
  631.  
  632.  
  633.     SISC
  634.  
  635.        Actually, a microcontroller is by definition a Reduced Instruction
  636.        Set Computer (at least in my opinion).  It could really be called
  637.        a Specific Instruction Set Computer (SISC).  The [original] idea
  638.        behind the microcontroller was to limit the capabilities of the
  639.        CPU itself, allowing a complete computer (memory, I/O, interrupts,
  640.        etc) to fit on the available real estate.  At the expense of the
  641.        more general purpose instructions that make the standard
  642.        microprocessors (8088, 68000, 32032) so easy to use, the
  643.        instruction set was designed for the specific purpose of control
  644.        (powerful bit manipulation, easy and efficient I/O, and so on).
  645.  
  646.        Microcontrollers now come with a mind boggling array of features
  647.        that aid the control engineer - watchdog timers, sleep/wakeup
  648.        modes, power management, powerful I/O channels, and so on.  By
  649.        keeping the instruction set specific (and reduced), and thus
  650.        saving valuable real estate, more and more of these features can
  651.        be added, while maintaining the economy of the microcontroller.
  652.  
  653.  
  654. 4.3)  Advanced Memory options
  655.  
  656.     EEPROM - Electrically Erasable Programmable Read Only Memory
  657.  
  658.        Many microcontrollers have limited amounts of EEPROM on the chip.
  659.        EEPROM seems more suited (becuase of its economics) for small
  660.        amounts of memory that hold a limited number of parameters that
  661.        may have to be changed from time to time.  This type of memory is
  662.        relatively slow, and the number of erase/write cycles allowed in
  663.        its lifetime is limited.
  664.  
  665.  
  666.     FLASH (EPROM)
  667.  
  668.        Flash provides a good better solution than regular EEPROM when
  669.        there is a requirement for large amounts of non-volatile program
  670.        memory.  It is both faster and permits more erase/write cycles
  671.        than EEPROM.
  672.  
  673.  
  674.     Battery backed-up static RAM
  675.  
  676.        Battery backed-up static RAM is useful when a large non-volatile
  677.        program and DATA space is required.  A major advantage of static
  678.        RAM is that it is much faster than other types of non-volatile
  679.        memory so it is well suited for high performance application.
  680.        There also are no limits as to the number of times that it may be
  681.        written to so it is perfect for applications that keep and
  682.        manipulate large amounts of data locally.
  683.  
  684.  
  685.     Field programming/reprogramming
  686.  
  687.        Using nonvolatile memory as a place to store program memory allows
  688.        the device to be reprogrammed in the field without removing the
  689.        microcontroller from the system that it controls.  One such
  690.        application is in automotive engine controllers.  Reprogrammable
  691.        non-volatile program memory on the engine's microcontroller allows
  692.        the engine controller program to be modified during routine
  693.        service to incorporate the latest features or to compensate for
  694.        such factors as engine aging and changing emissions control laws
  695.        (or even to fix bugs!!).  Reprogramming of the microcontroller
  696.        could become a standard part the routine engine tune-up.
  697.  
  698.        Almost every application could benefit from this type of program
  699.        memory - If a modem's hardware supported it, you could remotely
  700.        upgrade your modem from Vfast to V.34, or incorporate new features
  701.        such as voice control or a digital answering machine.
  702.  
  703.  
  704.     OTP - One Time Programmable
  705.  
  706.        An OTP is a PROM (Programmable Read-Only-Memory) device.  Once
  707.        your program is written into the device with a standard EPROM
  708.        programmer, it can not be erased or modified.  This is usually
  709.        used for limited production runs before a ROM mask is done in
  710.        order to test code.
  711.  
  712.        A OTP (One Time Programmable) part uses standard EPROM, but the
  713.        package has no window for erasing.  Once your program is written
  714.        into the device with a standard EPROM programmer, it cannot be
  715.        erased or modified.  (Well, sort of - any bit that is a one can be
  716.        changed to a zero - but a bit that is a zero cannot be changed
  717.        into a one).
  718.  
  719.        As product design cycles get shorter, it is more important for
  720.        micro manufacturers to offer OTPs as an option.  This was commonly
  721.        used for limited production runs before a ROM mask in order to
  722.        test code.  However, one problem with Mask ROM is that
  723.        programming, setup, and engineering charges make it economical
  724.        only when the systems manufacturer purchases large quantities of
  725.        identically programmed micros.  Then when you discover THAT bug
  726.        (and find it and fix your code), you have quantities of *old
  727.        buggy* micros around that you have to throw away.  Not to mention
  728.        that lead time (the time when you submit your code to the micro
  729.        manufacture, to the time you receive your micro with your code on
  730.        it) can be at least 8 weeks, and as bad as 44 weeks.
  731.  
  732.  
  733.     Software protection
  734.  
  735.        Either by encryption or fuse protection, the programmed software
  736.        is protected against unauthorized snooping (reverse engineering,
  737.        modifications, piracy, etc.).
  738.  
  739.        This is only an option on OTPs and Windowed devices.  On Masked
  740.        ROM devices, security is not needed - the only way to read your
  741.        code would be to rip the microcontroller apart with a scanning
  742.        electron microscope - and how many people really have one of
  743.        those?
  744.  
  745.        Although - and this is a manufacturer's little know fact - when a
  746.        silicon manufacturer makes your ROMed microcontroller - they have
  747.        to test it in order to make sure that it is programmed properly.
  748.        (You should see what a spec of dust does on a mask :-)  In order
  749.        to test this, they must be able to read out the ROM and compare it
  750.        to the code you submitted.  This mode is known as test mode.  IN
  751.        TEST MODE YOU CAN READ OUT THE ROM OF ANY DEVICE.  Anybody who
  752.        tells you different, does not know what they are talking about -
  753.        or is lying.  This is usually not a big deal because test mode is
  754.        ***VERY*** confidential, and (usually) only known by that
  755.        manufacturer (i.e. you cannot put a device into test mode by
  756.        accident).  Test mode is ONLY applicable with ROMed devices.
  757.  
  758.  
  759. 4.4)  Power Management and Low Voltage
  760.  
  761.     Low voltage parts
  762.  
  763.        Since automotive applications have been the driving force behind
  764.        most microcontrollers, and 5 Volts is very easy to do in a car,
  765.        most microcontrollers have only supported 4.5 - 5.5 V operation.
  766.        In the recent past, as consumer goods are beginning to drive major
  767.        segments of the microcontroller market, and as consumer goods
  768.        become portable and lightweight, the requirement for 3 volt (and
  769.        lower) microcontrollers has become urgent (3 volts = 2 battery
  770.        solution / lower voltage = longer battery life).  Most low voltage
  771.        parts in the market today are simply 5 volt parts that were
  772.        modified to operate at 3 volts (usually at a performance loss).
  773.        Some micros being released now are designed from the ground up to
  774.        operate properly at 3.0 (and lower) voltages, which offer
  775.        comparable performance of the 5 volt devices.
  776.  
  777.  
  778.        Now, why are voltages REALLY going down on ICs?  Paul K. Johnson
  779.        (of Hewlett-Packard) explains:
  780.  
  781.        There are a few interesting rules of thumb regarding transistors:
  782.        1)  The amount of power they dissipate is proportional to their
  783.            size.  If you make a transistor half as big, it dissipates
  784.            half as much power.
  785.        2)  Their propagation delay is proportional to their size.  If you
  786.            make a transistor half as big, it's twice as fast.
  787.        3)  Their cost is proportional to the square of their size.  If
  788.            you make them half as big, they cost one quarter as much.
  789.  
  790.        If you make a transistor smaller, you improve the power, speed,
  791.        and cost.  The only drawback is that they are harder to make.
  792.        (Well, how hard can it be for HP, IBM, Motorola, National, etc?)
  793.        Everybody in the world wants to make transistors smaller and
  794.        smaller, the advantages are enormous.
  795.  
  796.        For years people have been using 5 Volts to power IC's.  Because
  797.        the transistors were large, there was little danger damaging the
  798.        transistor putting this voltage across it.  However, now that the
  799.        transistors are getting so small, 5 Volts will actually fry them.
  800.        The only way around this is to start lowering the voltage.  This
  801.        is why people are now using 3 (actually 3.3) Volt logic, and lower
  802.        in the next few years.  It isn't just because of batteries.
  803.  
  804.  
  805.     Brownout Protection
  806.  
  807.        Brownout protection is usually an on-board protection circuit that
  808.        resets the device when the operating voltage (Vcc) is lower than
  809.        the brownout voltage.  The device is held in reset and will remain
  810.        in reset when Vcc stays below the Brownout voltage.  The device
  811.        will resume execution (from reset) after Vcc has risen above the
  812.        brownout Voltage.
  813.  
  814.  
  815.     Idle/Halt/Wakeup
  816.  
  817.        The device can be placed into IDLE/HALT mode by software control.
  818.        In both Halt and Idle conditions the state of the microcontroller
  819.        remains.  RAM is not cleared and any outputs are not changed.  The
  820.        terms idle and halt often have different definitions, depending on
  821.        the manufacturer.  What some call idle, others may call halt, and
  822.        vice versa.  It can be confusing, so check the data sheet for the
  823.        device in question to be sure.
  824.  
  825.        In IDLE mode, all activities are stopped except:
  826.          - associated on-board oscillator circuitry
  827.          - watchdog logic (if any)
  828.          - the clock monitor
  829.          - the idle timer (a free running timer)
  830.        Power supply requirements on the microcontroller in this mode are
  831.        typically around 30% of normal power requirements of the
  832.        microprocessor.  Idle mode is exited by a reset, or some other
  833.        stimulus (such as timer interrupt, serial port, etc.).  A special
  834.        timer/counter (the idle timer) causes the chip to wake up at a
  835.        regular interval to check if things are OK.  The chip then goes
  836.        back to sleep.
  837.  
  838.        IDLE mode is extremely useful for remote, unattended data logging
  839.        - the microprocessor wakes up at regular intervals, takes its
  840.        measurements, logs the data, and then goes back to sleep.
  841.  
  842.        In Halt mode, all activities are stopped (including timers and
  843.        counters).  The only way to wake up is by a reset or device
  844.        interrupt (such as an I/O port).  The power requirements of the
  845.        device are minimal and the applied voltage (Vcc) can sometimes be
  846.        decreased below operating voltage without altering the state
  847.        (RAM/Outputs) of the device.  Current consumption is typically
  848.        less than 1 uA.
  849.  
  850.        A common application of HALT mode is in laptop keyboards.  In
  851.        order to have maximum power saving, the controller is in halt
  852.        until it detects a keystroke (via a device interrupt).  It then
  853.        wakes up, decodes and sends the keystroke to the host, and then
  854.        goes back into halt mode, waiting either for another keystroke, or
  855.        information from the host.
  856.  
  857.  
  858.     Multi-Input Wakeup (National Semiconductor)
  859.  
  860.        The Multi-Input WakeUp (MIWU) feature is used to return (wakeup)
  861.        the microcontroller from either HALT or IDLE modes.  Alternately
  862.        MIWU may also be used to generate up to 8 edge selectible external
  863.        interrupts.  The user can select whether the trigger condition on
  864.        the pins is going to be either a positive edge (low to high) or a
  865.        negative edge (high to low).
  866.  
  867.  
  868. 4.5)  I/O
  869.  
  870.     UART
  871.  
  872.        A UART (Universal Asynchronous Receiver Transmitter) is a serial
  873.        port adapter for asynchronous serial communications.
  874.  
  875.  
  876.     USART
  877.  
  878.        A USART (Universal Synchronous/Asynchronous Receiver Transmitter)
  879.        is a serial port adapter for either asynchronous or synchronous
  880.        serial communications.  Communications using a USART are typically
  881.        much faster (as much as 16 times) than with a UART.
  882.  
  883.  
  884.     Synchronous serial port
  885.  
  886.        A synchronous serial port doesn't require start/stop bits and can
  887.        operate at much higher clock rates than an asynchronous serial
  888.        port.  Used to communicate with high speed devices such as memory
  889.        servers, display drivers, additional A/D ports, etc.  Can also be
  890.        used to implement a simple microcontroller network.
  891.  
  892.  
  893.     SPI (Motorola)
  894.  
  895.        An SPI (serial peripheral interface) is a synchronous serial port.
  896.  
  897.  
  898.     SCI
  899.  
  900.        An SCI (serial communications interface) is an enhanced UART
  901.        (asynchronous serial port).
  902.  
  903.  
  904.     I2C bus - Inter-Integrated Circuit bus (Philips)
  905.  
  906.        The I2C bus is a simple 2 wire serial interface developed by
  907.        Philips.  It was developed for 8 bit applications and is widely
  908.        used in consumer electronics, automotive and industrial
  909.        applications.  In addition to microcontrollers, several
  910.        peripherals also exist that support the I2C bus.
  911.  
  912.        The I2C bus is a two line, multi-master, multi-slave network
  913.        interface with collision detection.  Up to 128 devices can exist
  914.        on the network and they can be spread out over 10 meters.  Each
  915.        node (microcontroller or peripheral) may initiate a message, and
  916.        then transmit or receive data.  The two lines of the network
  917.        consist of the serial data line and the serial clock line.  Each
  918.        node on the network has a unique address which accompanies any
  919.        message passed between nodes.  Since only 2 wires are needed, it
  920.        is easy to interconnect a number of devices.
  921.  
  922.  
  923.     MICROWIRE/PLUS (National Semiconductor)
  924.  
  925.        MICROWIRE/PLUS is a serial synchronous bi-directional
  926.        communications interface.  This is used on National Semiconductor
  927.        Corporation's devices (microcontrollers, A/D converters, display
  928.        drivers, EEPROMS, etc.).
  929.  
  930.  
  931.     CAN & J1850
  932.  
  933.        CAN (Controller Area Network) is a mutiplexed wiring scheme that
  934.        was developed jointly by Bosh and Intel for wiring in automobiles.
  935.        J1850 is the SAE (Society of Automotive Engineers) multiplexed
  936.        automotive wiring standard that is currently in use in North
  937.        America.
  938.  
  939.        Both of these groups have the "NOT INVENTED HERE" syndrome and
  940.        refuse to work with each other's standard. The standards are quite
  941.        different and are not compatible at all.
  942.  
  943.        The CAN specification seems to be the one that is being used in
  944.        industrial control both in North American and Europe.  With lower
  945.        cost microcontrollers that support CAN, CAN has a good potential
  946.        to take off.
  947.  
  948.  
  949.     Analog to Digital Conversion (A/D)
  950.  
  951.        Converts an external analog signal (typically relative to voltage)
  952.        and converts it to a digital representation.  Microcontrollers
  953.        that have this feature can be used for instrumention,
  954.        environmental data logging, or any application that lives in an
  955.        analog world.
  956.  
  957.        The various types of A/D converters that can be found:
  958.  
  959.        Succesive Approximation A/D converters -- This the most common
  960.        type of A/D and is used in the majority of microcontrollers.  In
  961.        this technique, the converter figures out each bit at a time (most
  962.        significant first) and finds if the next step is higher or lower.
  963.        This way has some benefits - it takes exactly the same amount of
  964.        time for any conversion - it is very common - (and therefore very
  965.        cheap).  However it also has some disadvantages - it is slow - for
  966.        every bit it takes at least one clock cycle - the best an 8-bit
  967.        A/D can do is at least 8 clock cycles (and a couple for
  968.        housekeeping).  Because it takes so long - it is a power hog as
  969.        compared to the other types of A/Ds.
  970.  
  971.        Single Slope A/D converters -- This is the type of converter that
  972.        you can build yourself (if the microcontroller has a couple of
  973.        analog blocks on it).  Your single slope A/D converter would
  974.        include Analog Mux / comparator / timer (8-bit timer = 8 bit A/D -
  975.        16-bit timer = 16 bit A/D) with input capture and a constant
  976.        current source.  The only microcontroller (that I know of) that
  977.        has all of this on it is National's COP888EK.
  978.  
  979.        First Step is to clear the timer to 0000 and then start it.  It is
  980.        a simple matter to hang an external capacitor, and charge it with
  981.        the constant current source (linearly because of the current
  982.        source) when the voltage on the cap exceeds the sampling voltage,
  983.        the comparitor toggles, stops the timer - and voila - you have the
  984.        voltage in uSecs - with 16-bit accuracy.  The only drawback is you
  985.        can't really expect 16 bits (14 yes) - the conversion time varies
  986.        quite a bit, and it is SLOW.
  987.  
  988.        Delta-Sigma A/Ds converters -- This type of A/D converter is found
  989.        on higher-end DSPs.  These are the hardest to understand of the
  990.        A/Ds because it just makes a best guess (a little National
  991.        Semiconductor humor here :-).  Delta sigma A/Ds can be broken down
  992.        into two main parts.
  993.  
  994.        The modulator which does the A/D conversion and the filter, which
  995.        turns the output of the modulator into a format suitible for the
  996.        microcontroller (or DSP).
  997.  
  998.        The modulator is very simple - it just compares the input voltage
  999.        to the average of the last 100 (or so) modulator outputs and
  1000.        decides if the input is higher or lower than the average. This
  1001.        happens millions of times a second, resulting in a high speed
  1002.        single-bit datastream of 1s and 0s who's *average* is equal to the
  1003.        input voltage. Becuse the ouput is only a one or a zero, there are
  1004.        very few sources of errors. This is the main reason that
  1005.        delta-sigma A/Ds are **very** accurate.
  1006.  
  1007.        The filter comes after the modulator ... and this filter is
  1008.        essentially a big DSP block.  It must take the very high speed
  1009.        stream of ones and zeros and turn it into a slower speed stream of
  1010.        16-bit (or greater) words to be used by the microcontroller.  This
  1011.        process is called decimation and the filter is often called a
  1012.        "comb filter".  Another digital filter follows this stage and
  1013.        rejects unwanted frequencies.  This filter performs a similar
  1014.        function to the anti-aliasing filter required in many traditional
  1015.        A/D appliactions, but it does it at an unprecedented level of
  1016.        performance and at low cost.  This is the other major benefit of
  1017.        delta-sigma A/Ds.
  1018.  
  1019.        Flash A/D -- This is the basic architecure for the fastest
  1020.        category of A/Ds.  The flash converter involves looking at each
  1021.        level that is possible and instantaneously saying what level the
  1022.        voltage is at.  This is done by setting up comparators as
  1023.        threshold detectors with each detector being set up for a voltage
  1024.        exaclty 1 LSB higher than the detector below it.  The benefit of
  1025.        this architecture is that with a single clock cycle, you can tell
  1026.        exactly what the input voltage is - that is why it is so fast.
  1027.        The disadvantage is that to achieve 8-bit accuracy you need 256
  1028.        comparators and to achieve 10-bit accuracy you need 1024
  1029.        comparators. To make these comparators operate at higher speeds,
  1030.        they have to draw LOTS of current, and beyond 10 bits, the number
  1031.        of comparators required becomes totally unmanageable.
  1032.  
  1033.  
  1034.     D/A (Digital to Analog) Converters
  1035.  
  1036.        This feature takes a Digital number and converts it to a analog
  1037.        output. The number 50 would be changed to the analog output of
  1038.        (50/256 * 5Volts) = .9765625V on a 8-bit / 5 Volt system.
  1039.  
  1040.  
  1041.     Pulse width modulator
  1042.  
  1043.        Often used as a digital-to-analog conversion technique.  A pulse
  1044.        train is generated and regulated with a low-pass filter to
  1045.        generate a voltage proportional to the duty cycle.
  1046.  
  1047.  
  1048.     Pulse accumulator
  1049.  
  1050.        A pulse accumulator is an event counter.  Each pulse increments
  1051.        the pulse accumulator register, recording the number of times this
  1052.        event has occurred.
  1053.  
  1054.  
  1055.     Input Capture
  1056.  
  1057.        Input Capture can measure external frequencies or time intervals
  1058.        by copying the value from a free running timer into a register
  1059.        when an external event occurs.
  1060.  
  1061.  
  1062.     Comparator
  1063.  
  1064.        One or more standard comparators can sometimes be placed on a
  1065.        microcontroller die.  These comparators operate much like standard
  1066.        comparators however the input and output signals are available on
  1067.        the microcontroller bus.
  1068.  
  1069.  
  1070.     Mixed (Analog-Digital) Signal
  1071.  
  1072.        We live in an analog world where the information we see, hear,
  1073.        process, and exchange with each other, and with our mechanical and
  1074.        electronic systems, is always an analog quantity - pressure,
  1075.        temperature, voltage, current, air and water flow are always
  1076.        analog entities.  They can be digitized for more efficient
  1077.        sorting, storage and transmittal, but the interface - the input
  1078.        and output - is almost always analog.  Thus the essence of analog
  1079.        electronics lies in sensing continuously varying information,
  1080.        shaping and converting it for the efficiency of digital processing
  1081.        and transmission, and reshaping the digital data to an analog
  1082.        signal at the other end.
  1083.  
  1084.        Mixed analog-digital devices are being used increasingly to
  1085.        integrate the complex functions of high-speed telecommunications,
  1086.        or the real-time data processing demanded by industrial control
  1087.        systems and automotive systems.  Start looking for
  1088.        microcontrollers that have analog comparators, analog
  1089.        multiplexers, current sources, voltage doublers, PLL (Phase Lock
  1090.        Loops) and all sorts of peripherals that you thought were analog
  1091.        only.
  1092.  
  1093.  
  1094. 4.6)  Interrupts
  1095.  
  1096.  
  1097.     Polling
  1098.  
  1099.        Polling is not really a "feature" - it's what you have to do if
  1100.        your microcontroller of choice does not have interrupts.
  1101.        Polling is a software technique whereby the controller continually
  1102.        asks a peripheral if it needs servicing.  The peripheral sets a
  1103.        flag when it has data ready for transferring to the controller,
  1104.        which the controller notices on its next poll.  Several such
  1105.        peripherals can be polled in succession, with the controller
  1106.        jumping to different software routines, depending on which flags
  1107.        have been set.
  1108.  
  1109.  
  1110.     Interrupts
  1111.  
  1112.        Rather than have the microcontroller continually polling - that
  1113.        is, asking peripherals (timers / UARTS / A/Ds / external
  1114.        components) whether they have any data available (and finding most
  1115.        of the time they do not), a more efficient method is to have the
  1116.        peripherals tell the controller when they have data ready.  The
  1117.        controller can be carrying out its normal function, only
  1118.        responding to peripherals when there is data to respond to.  On
  1119.        receipt of an interrupt, the controller suspends its current
  1120.        operation, identifies the interrupting peripheral, then jumps
  1121.        (vectors) to the appropriate interrupt service routine.
  1122.  
  1123.        The advantage of interrupts, compared with polling, is the speed
  1124.        of response to external events and reduced software overhead (of
  1125.        continually asking peripherals if they have any data ready).
  1126.  
  1127.        Most microcontrollers have at least one external interrupt, which
  1128.        can be edge selectible (rising or falling) or level triggered.
  1129.        Both systems (edge/level) have advantages.  Edge - is not time
  1130.        sensitive, but it is susceptible to gitches.  Level - must be held
  1131.        high (or low) for a specific duration (which can be a pain - but
  1132.        is not susceptible to glitches).
  1133.  
  1134.        Interrupts are critical when you are controlling anything (this is
  1135.        what microcontrollers do).  If you misunderstand any of the terms,
  1136.        and design your systems with the way you *think* it works - not
  1137.        the way it *really* works - it will effect system performance.  It
  1138.        may also work for a very long time with no problems, and then all
  1139.        of a sudden fail.  Check your datasheets - these descriptions are
  1140.        the correct ones (or are at least supposed to be), but that does
  1141.        not mean that they are agreed to by the silicon manufacturers, (or
  1142.        by the marketing guys that they employ, and who write parts of the
  1143.        data sheets.)
  1144.  
  1145.        4 bit microcontrollers usually have either a polling or
  1146.        non-vectored type of interrupt scheme.  8 and 16 bit
  1147.        microcontrollers usually have some type of vectored arbitration
  1148.        type of interrupt scheme.  32 bit microcontrollers usually will
  1149.        have some type of vectored priority type of interrupt scheme.
  1150.        Again, check your data sheet to make sure - or ask a
  1151.        manufacturer's rep if you aren't sure.
  1152.  
  1153.  
  1154.     Maskable Interrupts
  1155.  
  1156.        A maskable interrupt is one that you can disable or enable
  1157.        (masking it out means disabling the interrupt), whereas
  1158.        non-maskable interrupts you can't disable.  The benefit of
  1159.        maskable interrupts is that you can turn off a particular
  1160.        interrupts (for example a UART) during some time critical task.
  1161.        Then, those particular interrupts will be ignored thus allowing
  1162.        the microcontroller to deal with the task at hand.  Most
  1163.        microcontrollers (as well as most microprocessors) have some type
  1164.        of Global Interrupt Enable (GIE) which allows you to turn off (or
  1165.        on) all of the maskable interrupts with one bit.  NOTE:  GIE
  1166.        usually does not effect any NMI (Non-Maskable Interrupts)
  1167.  
  1168.  
  1169.     Vectored Interrupts
  1170.  
  1171.        Simple (non-vectored) interrupts is one of the simplest interrupt
  1172.        schemes there is (Simple = less silicon = more software = slower).
  1173.        Whenever there is an interrupt, the program counter (PC) branches
  1174.        to one specific address.  At this address, the system designer
  1175.        needs to check the interrupts (one at a time) to see which
  1176.        peripheral has caused the interrupt to occur.  Code for this may
  1177.        look like (on a COP8):
  1178.  
  1179.          IFBIT  UART,PSW      ; If the UART bit has been set
  1180.          JP     UART_Recieve  ;  Jump to the UART receive service routine
  1181.  
  1182.          IFBIT  T1,PSW        ; If the timer has underflowed
  1183.          JP     Underflow     ;  Jump to the underflow service routine
  1184.  
  1185.          ...   and so on
  1186.  
  1187.        This can be *very* slow - and the time between the interrupt
  1188.        happening and the time the service routine is entered, depends on
  1189.        how the system designer sets up their ranking.  The peripheral
  1190.        that is checked last takes the longest to process.  Most
  1191.        microcontrollers that have fewer than 3 - 5 interrupts use this
  1192.        method.  The benefit of this is that the system designer can set
  1193.        the priority - The most important peripheral gets checked first -
  1194.        and you get to decide which peripheral that is.
  1195.  
  1196.        Vectored interrupts are a little easier to set up, but the system
  1197.        designer has less control of the system (i.e. is dependent on the
  1198.        silicon manufacture to make the proper decisions during design of
  1199.        the chip).  When an interrupt occurs, the hardware interrupt
  1200.        handler automatically branches to a specific address depending on
  1201.        what interrupt occurred.  This is much faster than the
  1202.        non-vectored approach described above, however the system designer
  1203.        does not get to decide what peripheral gets checked first.
  1204.        Example (on a National Semiconductor COP888CG):
  1205.  
  1206.           Rank         Source          Description        Vector Address
  1207.        ------------------------------------------------------------------
  1208.             1 (highest) Software       INTR Instruction    01FE - 01FF
  1209.             2           External       Pin G0 Edge         01FA - 01FB
  1210.             3           Timer T0       Underflow           01F8 - 01F9
  1211.             4           Timer T1       T1A / Underflow     01F6 - 01F7
  1212.             5           Timer T1       T1B                 01F4 - 01F5
  1213.             6           MICROWIRE/PLUS BUSY Goes Low       01F2 - 01F3
  1214.             7           UART           Receive             01EE - 01EF
  1215.             8           UART           Transmit            01EC - 01ED
  1216.             9           Timer T2       T2A / Underflow     01EA - 01EB
  1217.            10           Timer T2       T2B                 01E8 - 01E9
  1218.            11           Timer T3       T3A / Underflow     01E6 - 01E7
  1219.            12           Timer T3       T3B                 01E4 - 01E5
  1220.            13           Port L / MIWU  Port L Edge         01E2 - 01E3
  1221.            14 (lowest)  Default        VIS Interaction     01E0 - 01E1
  1222.  
  1223.        In ROM location 01F8 - 01F9 (2bytes x 8 bits = 16bit address) the
  1224.        system designer enters the ROM location of where they want the
  1225.        service routine (of the Timer T0 underflow) to be. And so on for
  1226.        the rest of the addresses.
  1227.  
  1228.  
  1229.     Interrupt arbitration and priority
  1230.  
  1231.        Interrupt arbitration and priority - These are two of the most
  1232.        misused words when it comes to microcontrollers (microprocessors
  1233.        too for that matter) and it's generally because no one knows the
  1234.        difference between them.  Priority is not Arbitration.
  1235.        Arbitration is not Priority.  Lets see if we can sort out the
  1236.        differences.
  1237.  
  1238.        Arbitration - If you look at the above chart of the COP888CG, you
  1239.        may think the interrupts are prioritized because they have some
  1240.        ranking.  They do have rank, but they are not prioritized.  What
  1241.        happens is that (in an arbitration scheme) when an interrupt
  1242.        occurs, the GIE (Global Interrupt Enable) is cleared.  This
  1243.        effectively means that all future interrupts will be delayed until
  1244.        the GIE is set.  The GIE becomes set only if the system designer
  1245.        sets it in a service routines, or on a RETI (Return from
  1246.        Interrupt).
  1247.  
  1248.        Quick Example 1 - Timer 1 underflows - the hardware clears the
  1249.        GIE, looks at ROM locations 01F6 and 01F7 and jumps to the ROM
  1250.        location pointed to by those addresses.  The program does a couple
  1251.        things, and then sets the GIE (because the user wants to recognize
  1252.        an external interrupt during this service routine).  However while
  1253.        in the service routine, Timer 3 underflows.  Although a timer 3
  1254.        underflow is lower in rank than a timer 1 underflow, the interrupt
  1255.        handler does not care - it simply looks at the GIE, and because it
  1256.        is set - handles the interrupt (now we have nested interrupts).
  1257.        The Timer 1 underflow service routine will not be completed until
  1258.        the Timer 3 underflow is complete.
  1259.  
  1260.        Quick Example 2 - Timer 3 underflows at the same time as an
  1261.        External interrupt occur.  The one to be handled first is the
  1262.        External Interrupt.  If the user sets the GIE, the interrupt
  1263.        handler will jump down to the Timer 3 underflow handler.  If the
  1264.        user does not set the GIE, the microcontroller handles the
  1265.        External interrupt, does a RETI, and the Timer 3 underflow can now
  1266.        be handled.
  1267.  
  1268.  
  1269.        Priority - In a priority scheme, things are prioritized (well,
  1270.        what'd you expect?).  If Timer T0 underflows, the only thing that
  1271.        can interrupt that is an external or software interrupt.  If a
  1272.        external or software interrupt occurs, the interrupt handler will
  1273.        branch to these service routines.  When they are complete, it will
  1274.        return to the Timer T0 underflow.
  1275.  
  1276.        Quick Example - In the below timing diagram, the following
  1277.        happens:
  1278.          1) Timer T0 underflows
  1279.          2) Timer T2 underflows
  1280.          3) An External Interrupt occurs.
  1281.  
  1282.  
  1283.        In a priority scheme, the following would happen:
  1284.  
  1285.         External Interrupt             |---------|
  1286.                                        |         |
  1287.         Timer T0 Underflow     |-------|         |------|
  1288.                                |                        |
  1289.         Timer T2 Underflow     |                        |------|
  1290.                                |                               |
  1291.         Normal Execution    ---|                               |-------
  1292.  
  1293.                                ^   ^   ^         ^      ^       ^
  1294.                                |   |   |         |      |       |
  1295.         Time ->                |   |   |         |      |       \-T2 Done
  1296.                                |   |   |         |      \-------- T0 Done
  1297.                                |   |   |         \-------------- Ext Done
  1298.                                |   |   \------------------------ Ext Edge
  1299.                                |   \----------------------- T2 Underflows
  1300.                                \--------------------------- T0 Underflows
  1301.  
  1302.        This is what RTOS (Real Timer Operating Systems) do - prioritize
  1303.        and handle interrupts.
  1304.  
  1305.  
  1306. 4.7)  Special microcontroller features
  1307.  
  1308.  
  1309.     Watchdog timer
  1310.  
  1311.        A watchdog timer provides a means of graceful recovery from a
  1312.        system problem.  This could be a program that goes into an endless
  1313.        loop, or a hardware problem that prevents the program from
  1314.        operating correctly.  If the program fails to reset the watchdog
  1315.        at some predetermined interval, a hardware reset will be
  1316.        initiated.  The bug may still exist, but at least the system has a
  1317.        way to recover.  This is especially useful for unattended systems.
  1318.  
  1319.  
  1320.     Digital Signal Processors (DSP)
  1321.  
  1322.        Microcontrollers react to and control events - DSPs execute
  1323.        repetitive math-intensive algorithms.  Today many embedded
  1324.        applications require both types of processors, and semiconductor
  1325.        manufacturers have responded by introducing microcontrollers with
  1326.        on-chip DSP capability and DSPs with on-chip microcontrollers.
  1327.  
  1328.        The most basic thing a DSP will do is a MACC (Multiply and
  1329.        ACCumulate).  The number of data bits a DSP can Multiply and
  1330.        ACCumulate will determine the dynamic range (and therefore the
  1331.        application).
  1332.  
  1333.         Bits Fixed/Floating  Dynamic Range   Typical Application
  1334.  
  1335.           8     Fixed           48 dB         Telephone-quality voice
  1336.          16     Fixed           96 dB         Compact disk (marginal)
  1337.          24     Fixed          144 dB         Compact disk
  1338.                                                   (room for error)
  1339.  
  1340.  
  1341.     Clock Monitor
  1342.  
  1343.        A clock monitor can shut the microcontroller down (by holding the
  1344.        microcontroller in reset) if the input clock is too slow.  This
  1345.        can usually be turned on or off under software control.
  1346.  
  1347.  
  1348.     Resident program loader
  1349.  
  1350.        Loads a program by Initializing program/data memory from either a
  1351.        serial or parallel port.  Convenient for prototyping or trying out
  1352.        new features, eliminates the erase/burn/program cycle typical with
  1353.        EPROMs, and allows convenient updating of a system even from an
  1354.        offsite location.
  1355.  
  1356.  
  1357.     Monitor
  1358.  
  1359.        A monitor is a program installed in the microcontroller which
  1360.        provides basic development and debug capabilities.  Typical
  1361.        capabilities of a microcontroller monitor include:  loading object
  1362.        files into system RAM, executing programs, examining and modifying
  1363.        memory and registers, code disassembly, setting breakpoints, and
  1364.        single-stepping through code.  Some simple monitors only allow
  1365.        basic functions such as memory inspection, and the more
  1366.        sophisticated monitors are capable of a full range of debug
  1367.        functions.
  1368.  
  1369.        Monitors can either communicate with a dumb terminal or with a
  1370.        host computer such as a PC.  Much of the work of the monitor (such
  1371.        as user interface) can be offloaded to the host PC running a
  1372.        program designed to work with the monitor.  This makes it possible
  1373.        to reduce the size and complexity of the code that must be
  1374.        installed in the target system.
  1375.  
  1376.  
  1377.     MIL transducer
  1378.  
  1379.        An MIL transducer is a sophisticated and expensive device that
  1380.        detects the presence of your mother-in-law.  Sensitivity settings
  1381.        are possible for a full range of stimuli such as:  snarling,
  1382.        stomping, nasty faces, and others.  Techno-Wimp (address withheld
  1383.        upon request), the sole manufacturer of the MIL transducer, has
  1384.        recently announced a major new version which is sensitive enough
  1385.        to detect less-tangible stimuli.  This breakthrough product is
  1386.        dubbed the MIL-WOMF ("Whoa, outta my face!") transducer.  Both the
  1387.        original MIL and the new MIL-WOMF transducers are programmable and
  1388.        easy to interface to most microcontrollers.
  1389.  
  1390.  
  1391. 5)  Some popular microcontrollers
  1392.  
  1393.     Some common microcontrollers are described below.  A common question
  1394.     is "what microcontroller should I use for...?"  Well, that's a tough
  1395.     one.  The best advice would be to choose a chip that has a full set
  1396.     of development tools at the price you can afford, and good
  1397.     documentation.  For the hobbyist, the Intel 8051, Motorola 68hc11, or
  1398.     Microchip PIC would all make suitable choices.
  1399.  
  1400.  
  1401.     8048 (Intel)
  1402.  
  1403.        The grandaddy of 'em all, the first microcontroller, it all
  1404.        started here!  Although a bit long in the tooth and a bit kludgey
  1405.        in design (at least by today's standards), it is still very
  1406.        popular due to its very low cost, availability, and wide range of
  1407.        development tools.
  1408.  
  1409.        Modified Harvard architecture with program ROM on chip with an
  1410.        additional 64 to 256 bytes of RAM also on chip.  I/O is mapped in
  1411.        its own space.
  1412.  
  1413.  
  1414.     8051 (Intel and others)
  1415.  
  1416.        The 8051, Intel's second generation of microcontrollers, rules the
  1417.        microcontroller market at the present time.  Although featuring a
  1418.        somewhat bizarre design, it is a very powerful and easy to program
  1419.        chip (once you get used to it).
  1420.  
  1421.        Modified Harvard architecture with separate address spaces for
  1422.        program memory and data memory.  The program memory can be up to
  1423.        64K.  The lower portion (4K or 8K depending on type) may reside on
  1424.        chip.  The 8051 can address up to 64K of external data memory, and
  1425.        is accessed only by indirect addressing.  The 8051 has 128 bytes
  1426.        (256 bytes for the 8052) of on-chip RAM, plus a number of special
  1427.        function registers (SFRs).  I/O is mapped in its own space.
  1428.  
  1429.        The 8051 features the so-called "boolean processor".  This refers
  1430.        to the way instructions can single out bits just about anywhere
  1431.        (RAM, accumulators, I/O registers, etc.), perform complex bit
  1432.        tests and comparisons, and then execute relative jumps based on
  1433.        the results.
  1434.  
  1435.        Piles of software, both commercial and free, are available for the
  1436.        8051 line.  Many manufacturers supply what must be a hundred
  1437.        different variants of this chip for any requirement.  Often
  1438.        featured in construction projects in the popular hobbyist
  1439.        magazines.
  1440.  
  1441.  
  1442.     80c196 (MCS-96)
  1443.  
  1444.        The third generation of Intel microprocessors, the 80c196 is a 16
  1445.        bit processor.  Originally fabricated in NMOS (8096), it is now
  1446.        mainly available in CMOS.  Intel Corp. has recently introduced a
  1447.        clock-doubled (50MHz) version of the 80c196.
  1448.  
  1449.        Among the many features it includes are: hardware multiply and
  1450.        divide, 6 addressing modes, high speed I/O, A/D, serial
  1451.        communications channel, up to 40 I/O ports, 8 source priority
  1452.        interrupt controller, PWM generator, and watchdog timer.
  1453.  
  1454.  
  1455.     80186,80188 (Intel)
  1456.  
  1457.        These chips are, in essence, microcontroller versions of the 8086
  1458.        and 8088 (of IBM/PC fame).  Included on the chip are: 2 channels
  1459.        of DMA, 2 counter/timers, programmable interrupt controller, and
  1460.        dynamic RAM refresh.  There are several variations including:  low
  1461.        power versions, variations with serial ports, and so on.
  1462.  
  1463.        One major advantage you gain by using one of these parts is that
  1464.        you can use standard PC development tools (compilers, assemblers,
  1465.        etc) for developing you applications.  If you are already familiar
  1466.        with PC software development, the learning curve will be short,
  1467.        since these chips have the same basic architecture as the original
  1468.        8088 (as used in the IBM/PC).
  1469.  
  1470.        Other advantages include high speed processing, a full megabyte
  1471.        addressing space, and powerful interrupt processing.
  1472.  
  1473.  
  1474.     80386 EX (Intel)
  1475.  
  1476.        The 80386 EX is of course a 386 in microcontroller clothing.
  1477.        Included on the chip are: serial I/O, power management, DMA,
  1478.        counter/timers, programmable interrupt controller, and dynamic RAM
  1479.        refresh.  And of course, all of the power of the 386
  1480.        microprocessor.
  1481.  
  1482.        One major advantage you gain by using one of these parts is that
  1483.        you can use standard PC development tools (compilers, assemblers,
  1484.        etc) for developing your applications.  If you are already
  1485.        familiar with PC software development, the learning curve will be
  1486.        short, since these chips have the same basic architecture as the
  1487.        original 8088 (as used in the IBM/PC).
  1488.  
  1489.        We're talking power here gang.  Now let's all wait for Microsoft
  1490.        to release a version of Windows for embedded and real-time
  1491.        applications (Windows ET?  Windows RT?  Windows 2000? :-).
  1492.  
  1493.  
  1494.     6805 (Motorola)
  1495.  
  1496.        The 6805 is based loosely on the manufacturer's earlier 6800, with
  1497.        some similarities to the 6502.  It has a Von-Neuman architecture
  1498.        in which instructions, data, I/O, and timers all share the same
  1499.        space.  Stack pointer is 5 bits wide which limits the stack to 32
  1500.        bytes deep.  Some members of this family include on chip A/D, PLL
  1501.        frequency synthesizer, serial I/O, and software security.
  1502.  
  1503.  
  1504.     68hc11 (Motorola and others)
  1505.  
  1506.        The popular 68hc11 is a powerful 8-bit data, 16-bit address
  1507.        microcontroller from Motorola (the sole supplier) with an
  1508.        instruction set that is similar to the older 68xx parts (6801,
  1509.        6805, 6809).  The 68hc11 has a common memory architecture in which
  1510.        instructions, data, I/O, and timers all share the same memory
  1511.        space.
  1512.  
  1513.        Depending on the variety, the 68hc11 has built-in EEPROM/OTPROM,
  1514.        RAM, digital I/O, timers, A/D converter, PWM generator, pulse
  1515.        accumulator, and synchronous and ansynchronous communications
  1516.        channels.  Typical current draw is less than 20ma.
  1517.  
  1518.  
  1519.     683xx (Motorola)
  1520.  
  1521.        The MC68EC300 series incorporates various peripherals into various
  1522.        68k family core processors.  These can be called "integrated
  1523.        processors".  They are really super-microcontrollers, very high
  1524.        performance, capable of high processing speeds, and able to
  1525.        address large amounts of memory.  A typical example from this line
  1526.        would be the 68331.  It is based on a 68020-like core and has
  1527.        about the same processing power as an Intel 80386.
  1528.  
  1529.  
  1530.     PIC (MicroChip)
  1531.  
  1532.        While watching my 8 year old daughter play with her Barbie Dolls
  1533.        (she has about 7 or so, including two that used to belong to Roz,
  1534.        my wife, when she was a girl) I noticed an interesting difference
  1535.        between the old dolls and the new dolls.  The old Barbies could
  1536.        only move their heads sideways, while the new Barbies not only can
  1537.        move their heads sideways, but also up and down.  AMAZING - the
  1538.        old Barbies were good girls - they could only say no.  The new
  1539.        Barbies however can also say yes.  Progress - isn't it wonderful!
  1540.        (Not to mention the gymnast Barbie that Dave Perry's daughter got
  1541.        for Christmas - "wait'll you see what *she* can do ;-)"
  1542.  
  1543.        Which leads me to an amazing fact.  Most everyone thinks of the
  1544.        PIC microcontroller line as being a recent introduction.  However,
  1545.        they've been popular for over 20 years.  What's the difference?
  1546.        Microchip (which was originally [owned by] General Instruments),
  1547.        seems to have recreated this microcontroller into a product
  1548.        universally regarded as a powerful and cost effective solution.
  1549.        The new chips are fabricated in CMOS, some features have been
  1550.        added, and new family lines have been introduced.
  1551.  
  1552.        The PIC microcontrollers were the first RISC microcontrollers.
  1553.        RISC generally implies that simplicity of design allows more
  1554.        features to be added at lower cost, and the PIC line is no
  1555.        exception.  Although having few instructions (eg. 33 instructions
  1556.        for the 16C5X line versus over 90 for the Intel 8048), the PIC
  1557.        line has a wealth of features included as part of the chip.
  1558.        Separate buses for instructions and data (Harvard architecture)
  1559.        allows simultaneous access of program and data, and overlapping of
  1560.        some operations for increased processing performance.  The
  1561.        benefits of design simplicity are a very small chip, small pin
  1562.        count, and very low power consumption.
  1563.  
  1564.        PIC microcontrollers are rapidly gaining in popularity.  They are
  1565.        being featured more and more often in construction projects in
  1566.        popular hobbyist magazines, and are chalking up a good number of
  1567.        design wins.  Due to their low cost, small size, and low power
  1568.        consumption, these microcontrollers can now be used in areas that
  1569.        previously wouldn't have been appropriate (such as logic
  1570.        circuits).  They are currently available in three lines:  the
  1571.        PIC16C5x, PIC16Cxx, and PIC17Cxx families.
  1572.  
  1573.        PSST!  Hey kid!  Want a naked Barbie Doll?!
  1574.  
  1575.  
  1576.     COP400 Family (National Semiconductor)
  1577.  
  1578.        The COP400 Family is a P2CMOS 4-bit microcontroller which offers
  1579.        512 bytes to 2K ROM and 32x4 to 160x4 RAM.  Packages are varied
  1580.        from  20 to 28 pin (DIP/SO/PLCC).  Functions include Microwire,
  1581.        timers counters, 2.3 to 6.0 Volt operation, ROMless modes, and OTP
  1582.        support.
  1583.  
  1584.        Far from being "old" technology - 4-bit microcontrollers are
  1585.        meeting significant market needs in more applications than ever
  1586.        before.  The reason for the continuing strength of the COP400
  1587.        family is its versatility.  Over 60 different, compatible devices
  1588.        are available for a wide range of requirements.  The first under
  1589.        $.50 microcontroller set a new standard of value for
  1590.        cost/performance.
  1591.  
  1592.  
  1593.     COP800 Family (National Semiconductor)
  1594.  
  1595.        The COP800 Basic Family is a fully static 8-bit microcontroller,
  1596.        fabricated using double metal silicon gate microCMOS technology.
  1597.        This low cost microcontroller contains all system timing,
  1598.        interrupt logic, ROM, RAM, and I/O necessary to implement
  1599.        dedicated control functions in a variety of applications.
  1600.  
  1601.        Depending on the device, features include:  8-bit memory mapped
  1602.        architect, MICROWIRE serial I/O, UART, memory mapped I/O, many 16
  1603.        bit timer/counters with capture registers, a multi-sourced
  1604.        vectored interrupt, comparator, WATCHDOG Timer and Clock monitor,
  1605.        Modulator/Timer (high speed PWM timer for IR transmission),
  1606.        8-channel A/D converter with prescaler and both differential and
  1607.        single-ended modes, brownout protection, halt mode, idle mode,
  1608.        high current I/O pins with 15mA sink capability, Schmitt trigger
  1609.        inputs and Multi-Input-Wake-Up.  Most devices operate over a
  1610.        voltage range from 2.5V to 6V.
  1611.  
  1612.        High throughput is achieved with an efficient, powerful
  1613.        instruction set operating at a 1uS per instruction rate (most
  1614.        instructions are single byte/single cycle) including true bit
  1615.        manipulation and BCD arithmetic instructions.  Most devices have
  1616.        military versions for -55C to +125C.
  1617.  
  1618.  
  1619.     HPC Family (National Semiconductor)
  1620.  
  1621.        The HPC Family of High Performance microControllers is a 16-bit
  1622.        controller fabricated using National's advanced microCMOS
  1623.        technology.  This process combined with an advanced architecture
  1624.        provides fast, flexible I/O control, efficient data manipulation,
  1625.        and high speed computation.
  1626.  
  1627.        With its 16x16 bit multiply and 32x16 bit divide, the HPC is
  1628.        appropriate for compute-intensive environments that used to be the
  1629.        sole domain of the microprocessor.  The architecture is a
  1630.        Von-Neuman architecture where the program and data memory share
  1631.        the same address space.
  1632.  
  1633.        Depending on the family member, features include: 16-bit
  1634.        memory-mapped architecture with software configurable external
  1635.        address/data bus, Microwire/Plus serial I/O, UART, 16-bit
  1636.        timer/counters with input capture capability, High-Level Data Link
  1637.        Control (HDLC) for ISO-standard data communications, 8-channel A/D
  1638.        converter with prescaler and both differential and single-ended
  1639.        modes, power-saving modes, Multiply/Accumulate Unit with built-in
  1640.        circular buffer management for low to medium DSP applications,
  1641.        software configurable chip-select outputs, 64KB address space
  1642.        directly addressable, low-voltage (3.3V) operation.
  1643.  
  1644.        High throughput is achieved with an efficient, powerful
  1645.        instruction set operating at a 50ns per instruction cycle (most
  1646.        instructions are single byte/single cycle) including true bit
  1647.        manipulation.  Key applications currently using the HPC family
  1648.        include: Anti-lock Braking Systems, Hard Disk drives for mass
  1649.        storage, telecommunications, security systems, laser printers, and
  1650.        some military applications.
  1651.  
  1652.  
  1653.     Project Piranha (National Semiconductor)
  1654.  
  1655.        Project Piranha is an internal code name for National
  1656.        Semiconductor's embedded RISC processor technology. The Piranha
  1657.        technology represents the first RISC processor specifically
  1658.        designed for the needs of embedded applications.  This was
  1659.        accomplished through examination of the needs of typical embedded
  1660.        applications, resulting in a technology which maintains the
  1661.        benefits of CISC while providing the performance of RISC.
  1662.  
  1663.        Specifically, some of these benefits are:
  1664.          compact code density     -->  smaller memory usage/
  1665.                                           lower system cost
  1666.          small core size          -->  more room for add-on system design
  1667.          scalable architecture    -->  a range of performance solutions
  1668.        from 8 to 64 bits             with a common architecture
  1669.          common instruction set   -->  you only face the learning curve
  1670.             and development tools         once
  1671.          modular design           -->  designed for easy integration of
  1672.                                           specialized functions into
  1673.                                           single chip
  1674.  
  1675.        This technology is initially being implemented in application
  1676.        specific products from National Semiconductor, with the first
  1677.        product being available in Q1, 1995.  For further information on
  1678.        this technology, please contact Mark Throndson at
  1679.        tmetsc@esd.nsc.com, or (408) 721-4957.
  1680.  
  1681.  
  1682.     Z8 (Zilog)
  1683.  
  1684.        A "loose" derivative of the Zilog Z80, the Z8 is actually a
  1685.        composite of several different achitectures.  Not really
  1686.        compatible with the Z80 peripherals.  Has a unique architecture
  1687.        with three memory spaces:  program memory, data memory, and a CPU
  1688.        register file.  On-chip features include UART, timers, DMA, up to
  1689.        40 I/O lines.  Some versions include a synchronous/asynchronous
  1690.        serial channel.  Features fast interrupt response with 37
  1691.        interrupt sources.  The Z8671 has Tiny Basic in ROM.  The Super-8
  1692.        is just that, a super version of the Z8 with more of everything.
  1693.  
  1694.  
  1695.     HD64180 (Hitachi)
  1696.  
  1697.        A powerful microcontroller with full Z80 functionality plus:
  1698.        extended memory management, two DMA channels, synchronous and
  1699.        asynchronous communications channels, timers, and interrupt
  1700.        controller.  Some versions of this chip also include EPROM, RAM,
  1701.        and PIO (programmable input/output).  It runs Z80 code in fewer
  1702.        clock cycles than the Z80 and adds in hardware multiply and a few
  1703.        other instructions.  Available in versions that run up to 18MHz.
  1704.  
  1705.  
  1706.     TMS370 (Texas Instruments)
  1707.  
  1708.        It is similar to the 8051 in having 256 registers,  A and B
  1709.        accumulators, stack in the register page, etc.  It also has a
  1710.        host of onboard support devices, some members have all of them
  1711.        while others have a subset, the peripherals include:  RAM, ROM
  1712.        (mask, OTP, or EEPROM), 2 timers (configurable as timers/
  1713.        counters/comparators/PWM output), watchdog timer, SCI (syncronous
  1714.        serial port), SPI (asynchronous serial port), A/D (8 bit, 8
  1715.        channel), interrupts.
  1716.  
  1717.        Instruction set is mostly 8 bit with some 16 bit support.  Has
  1718.        several addressing modes, 8x8 multiply, 16/8 divide.  Clock speeds
  1719.        are up to 20MHz which gives 5MHz for buss access and instruction
  1720.        cycles.  Pins mostly TTL compatible (except clock and reset).
  1721.  
  1722.        Packages include:
  1723.              28,40 DIP
  1724.              28 CLCC
  1725.              28,44,68 PLCC
  1726.              40,64 SDIP
  1727.  
  1728.        A developers/proto board is available.  It is a multi layer PCB
  1729.        about 12"x7" with RS-232 serial I/O, and monitor as well as access
  1730.        to all processor pins on a patch and proto area.  Support software
  1731.        includes IBM-PC monitor & loader, cross assembler (absolute only).
  1732.        A pure serial TTY monitor is also supported.  Sole power
  1733.        requirement is +5v.  Priced is about $500 or so.
  1734.  
  1735.        A relocating assembler and linker, and a C compiler are also
  1736.        available.
  1737.  
  1738.  
  1739.     1802 (RCA)
  1740.  
  1741.        This is a real old-timer.  The 1802 is the successor to the 1801
  1742.        (2 chip set) which was the first microprocessor implemented in
  1743.        CMOS.  Both products were called microprocessors by RCA, not
  1744.        microcontrollers.  However, since the 1801 was implemented in CMOS
  1745.        and therefore had low power requirements, it was often used in
  1746.        microcontroller applications.  The 1802, with its higher level of
  1747.        integration and ease of use, could actually be considered a true
  1748.        microcontroller.  The 1802 is radiation hard and used in a lot of
  1749.        deep space and satellite applications.
  1750.  
  1751.        The 1802 has a fairly clean instruction set, a bunch of
  1752.        general-purpose registers (more like a Z80 than an 8051 in that
  1753.        regard), and separate data and I/O address spaces.
  1754.  
  1755.  
  1756.     MuP21 (Forth chip)
  1757.  
  1758.        The MuP21 was designed by Chuck Moore, the inventor of Forth.
  1759.        With the MuP21, Forth can compile into machine code and still be
  1760.        Forth, because the machine code IS Forth.  The MuP21 freaks out at
  1761.        100 MIPS while consuming only 50 milliwatts.  Not only that, the
  1762.        chip includes a video generator, has only about 7000 transistors
  1763.        (that's right, 7000 and not 7,000,000), and costs about $20.
  1764.  
  1765.        The assembler on this chip is a sort of dialect of Forth, as the
  1766.        CPU is modeled after the Forth virtual machine.  MuP21 is a
  1767.        MINIMAL Forth engine.  In fact MuP21 was designed to run OKAD
  1768.        (Chuck Moore's VLSI CAD softare), and OKAD was designed to run on
  1769.        MuP21.  OKAD was run on a 486 to design MuP21, and MuP21 was
  1770.        designed to have just enough hardware to run OKAD about ten times
  1771.        as fast as a 486 on a very cheap chip (the MuP21).  That's the
  1772.        reason for the MuP21's on-chip video generator coprocessor.  The
  1773.        CPU programs the video generator and then just manipulates the
  1774.        video buffer.  It is composite video out, so it only needs one
  1775.        pin.  MuP21 is only a 40 pin chip.
  1776.  
  1777.        MuP21 chips, boards, software, manuals, and spec sheets are
  1778.        available from:
  1779.           Offete Enterprises
  1780.           1306 South B Street, San Mateo CA 94402
  1781.           (415) 574-8250
  1782.           Email: Chen_Ting@umacmail.apldbio.com
  1783.  
  1784.  
  1785.     F21 (Next generation Forth chip)
  1786.  
  1787.        F21 will be bigger (10k vs 7k transistors for the MuP21!) but
  1788.        since it is going to implemented with a smaller geometry (.8
  1789.        micron vs 1.2) it will still be extremely small and low power, and
  1790.        low cost.  Although the specs on this chip aren't final yet,
  1791.        expected performance is in the range of 250 MIPS!!.  It will have
  1792.        multiple analog processors and a very high speed serial network
  1793.        coprocessor on chip.  F21 will also support a wider range of
  1794.        memory chips and have more I/O processors.
  1795.  
  1796.        Designed for cheap consumer multimedia and parallel processing,
  1797.        the F21 is planned for release some time in 1995.
  1798.  
  1799.        For more information on this project, contact: Jeff Fox
  1800.        <jfox@netcom.com>.
  1801.  
  1802.  
  1803. 6)  GETTING STARTED WITH MICROCONTROLLERS
  1804.  
  1805.     In order to get started with microcontrollers, several factors need
  1806.     to be considered.
  1807.           - cost
  1808.           - convenience
  1809.           - availability of development tools
  1810.           - intended use
  1811.  
  1812.     The hardware described in this section is readily available,
  1813.     affordable, and is easy to find software for.
  1814.  
  1815.     <Inclusion or exclusion of a product in this section doesn't have any
  1816.     real significance.  I've tried to give a good cross-section of
  1817.     devices and manufacturers - I'm open for suggestions.>
  1818.  
  1819.  
  1820. 6.1)  Evaluation Kits/Boards
  1821.  
  1822.     Many manufacturers offer assembled evaluation kits or boards which
  1823.     usually allow you to use a PC as a host development system.  Among
  1824.     some of the more popular evaluations kits/boards are:
  1825.  
  1826.     Parallax Basic Stamp
  1827.        This is a small single-board controller that runs BASIC, and costs
  1828.        only $39.  A SIP version for only $29 is also available.  THE 256
  1829.        byte EEPROM can hold a program of up to about 100 instructions.
  1830.        The BASIC Stamp Programming Package is a complete development
  1831.        package for only $99.
  1832.           Parallax, Inc., 3805 Atherton Rd. 102, Rocklin, CA  95765
  1833.           (916)624-8333    Fax: (916)624-8003   BBS: (916)624-7101
  1834.           email: info@parallaxinc.com
  1835.  
  1836.     Motorola EVBU, EVB, EVM, EVS
  1837.        A series of very popular evaluation/development systems.  Comes
  1838.        complete with the BUFFALO monitor and varying types of development
  1839.        software.  Commonly used for university courses.
  1840.  
  1841.     Dallas Semiconductor DS5000TK
  1842.        The DS5000TK allows evaluation of any DS5000 series device in any
  1843.        existing application without circuit changes.  The included
  1844.        DS5000T plugs into the supplied serial interface pod which
  1845.        provides a connection to a host PC.  A target cable connects the
  1846.        pod to the target system.  Programs can be downloaded directly to
  1847.        the chip (no EPROM programming!) using the built-in serial loader.
  1848.        (With Dunfield's Development System, you end up with a cheap
  1849.        "pseudo-ice".  Dunfield also has a circuit if you want to build a
  1850.        similar device.)
  1851.  
  1852.     Philips DS750
  1853.        For $100, you get a "pseudo-ice" for testing your code in-circuit.
  1854.        Based on the low-end Philips 87c75x parts.  Allows source-code
  1855.        debugging in assembler (included), C, and PL/M.  Very popular with
  1856.        students and consultants to experiment with 80c51 code for their
  1857.        application.  Includes a VERY NICE book which describes the theory
  1858.        of operation of the board itself, and includes a good number of
  1859.        experiments that you can try for yourself.  Philips sold nearly
  1860.        10,000 of these boards in the USA (and 5000 in Europe without even
  1861.        advertising).
  1862.  
  1863.     National Semiconductor's EPU
  1864.        The COP8780 Evaluation / Programming Unit (EPU) offers designers a
  1865.        low-cost ($125) tool for an introduction to National's COP8 Basic
  1866.        Family of 8-bit microcontrollers.  This development tool gives you
  1867.        an inexpensive way to benchmark and evaluate microcontroller code
  1868.        in realtime.  With its built in MIRCOWIRE/PLUS interface, it can
  1869.        interface to numerous MICROWIRE/PLUS devices such as EPROMS,
  1870.        EEPROMS, D/As, A/Ds, DASs, and others, to give a full featured
  1871.        system.  The system includes the EPU board, assembler and debugger
  1872.        software, sample code, very limited C compiler, wall power supply,
  1873.        documentation, and a really great box :-).
  1874.  
  1875.  
  1876. 6.2)  Easy chips to use
  1877.  
  1878.     In addition, several chips provide a similar capability if you are
  1879.     willing to spend a bit of time wiring up a simple circuit.  A few
  1880.     chips worth looking at are:
  1881.  
  1882.     Motorola MC68HC11A8P1
  1883.        Contains Motorola's BUFFALO monitor which has the same
  1884.        functionality as the one on Motorola's evaluation boards.  A
  1885.        working system can be built with this chip and a Maxim MAX-232.
  1886.        You can talk to it with a PC or Mac over a 3-wire RS232
  1887.        connection.  It is easy to load and run anything you want in the
  1888.        on-board RAM and EEPROM.  You can even use subprograms in the
  1889.        BUFFALO monitor after getting a listing from Motorola's BBS or ftp
  1890.        site.  This BBS/ftp site also has freeware assemblers to make a
  1891.        complete development environment cheaply and quickly.
  1892.  
  1893.     Intel 8052AH-BASIC
  1894.        This popular chip with hobbyists is another easy way to get
  1895.        started.  You can download high level code from your host.  The
  1896.        disadvantages are that you can't get away from a multi-chip
  1897.        solution, the code is noticeably slow, you have to buy an MCS
  1898.        BASIC manual, you are detached from the inner workings, there
  1899.        aren't many on-chip goodies like A/D, and you can forget about
  1900.        running off of a battery.
  1901.  
  1902.     Dallas Semiconductor DS5000/DS2250
  1903.        These are well suited even for electronics ignoramuses (ignorami?)
  1904.        such as myself.  All you need to add is a crystal and two
  1905.        capacitors to end up with a working system.  These chips come
  1906.        complete with non-volatile RAM in the form of static RAM (at least
  1907.        8K) backed up with a lithium battery.  Everything is saved -
  1908.        program, data, and bugs ;-).
  1909.  
  1910.     MicroChip PIC '5x series
  1911.        With only 33 instructions, this chip is definitely easy to use!
  1912.        Using Parallax's assembler, the instruction set is ** MUCH ** less
  1913.        intimidating than MicroChip's opcodes!  These chips simply need
  1914.        power, ground, and 1 of 4 different timing circuits. Doesn't get
  1915.        much easier than that!  With I/O pins that are beefy (25mA per pin
  1916.        sink, 20mA per pin source) and drive both high and low,
  1917.        interfacing is super easy.  It's great to hook LEDs and such
  1918.        directly to output pins with only a resister in-line!
  1919.  
  1920.  
  1921. 6.3)  Software (Cheap and easy)
  1922.  
  1923.     You can search for free software for development, but you often get
  1924.     what you pay for.  What is sorely lacking in freeware is technical
  1925.     support.  Several packages are available that provide complete
  1926.     development environments for some of the more popular
  1927.     microcontrollers.  If you want to be productive right away, think
  1928.     about investing $100 or so - it'll be well worth the price!
  1929.  
  1930.  
  1931.     I've been playing with the Dunfield Development System lately (on the
  1932.     8051), and it's really quite nice.  I've also heard many good things
  1933.     about it from others.  It includes a near ANSI-C compiler, run-time
  1934.     library with source, assembler, ROM debugger, integrated development
  1935.     environment, monitor with source, utilities, and other extras.
  1936.     Although not freeware, the low price ($100), the features, all of the
  1937.     extra goodies, and the good reviews make this a package worth looking
  1938.     at.  Also, if you're interested in working on more than one family of
  1939.     microcontroller, Dunfield supports a wide range.  This means only
  1940.     needing to learn one system, instead of many.  The following chips
  1941.     are supported:  6805, 6809, 68hc11, 68hc16, 8051/52, 8080/85, 8086,
  1942.     and 8096.  A package including a simulator and a resident monitor
  1943.     debugger are also available for the 8051 for $50.
  1944.           Dunfield Development Systems
  1945.           P.O. Box 31044, Nepean, Ontario  K2B 8S8   Canada
  1946.           (613)256-5820   Fax: (613)256-5821
  1947.           Email:  ddunfield@bix.com
  1948.  
  1949.  
  1950.     A decent C compiler for the 68hc11 comes from ImageCraft.  This
  1951.     package, which runs under DOS and OS/2, includes a near ANSI C
  1952.     compiler, assembler, linker, librarian, ANSI C functions and headers,
  1953.     and 90 page manual.  The current release is version 1.02 of their
  1954.     compiler.  The price is just $40.  Initial feedback on this compiler
  1955.     seems promising.  The pre-release versions are already in use by many
  1956.     of you, and will still be available as freeware.
  1957.           ImageCraft
  1958.           P.O. Box 64226, Sunnyvale, CA 94086-9991
  1959.           (Richard Man) imagecft@netcom.com
  1960.  
  1961.  
  1962.     Another low priced ($100) C compiler comes from Micro Computer
  1963.     Control.  Cross compilers running under DOS are available for the
  1964.     8051 and the Z8 (including Super-8).  This package includes a C
  1965.     compiler, assembler, linker, librarian, and extensive printed
  1966.     documentation.  A simulator/source code debugger is available for an
  1967.     additional $79.95.
  1968.           Micro Computer Control Corporation
  1969.           PO Box 275, 17 Model Ave., Hopewell, NJ  08525
  1970.           (609)466-1751   Fax: (609)466-4116   BBS: (609)466-4117
  1971.           Email: 73062.3336@compuserve.com
  1972.  
  1973.  
  1974.     C isn't the only development system available (yeah, I know that's
  1975.     hard to believe) - good solid Basic and Forth development systems are
  1976.     also available.  Refer to the appropriate FAQ for the microcontroller
  1977.     that you are using for more information on free and commercial
  1978.     development systems.
  1979.  
  1980.  
  1981.     If the Microchip PIC is your game, then check out the Parallax tools
  1982.     (available on their ftp and web sites).  All Parallax software is
  1983.     available free of charge to all takers!  This includes PSIM (a PIC
  1984.     simulator), PASM (an assembler for '5x parts), and PASMX (an
  1985.     assembler for 'xx parts).  These are the full commercial versions,
  1986.     not hobbled in any way!
  1987.  
  1988.  
  1989. 7)  MICROCONTROLLER PROGRAMMING LANGUAGES
  1990.  
  1991.     Just a bit of an introduction for the beginner.
  1992.  
  1993.  
  1994. 7.1)  Machine/Assembly language
  1995.  
  1996.     Machine language is the program representation as the microcontroller
  1997.     understands it.  It is not easy for humans to read and is a common
  1998.     cause of migraine headaches.  Assembly language is a human-readable
  1999.     form of machine language which makes it much easier for us flesh and
  2000.     bone types to deal with.  Each assembly language statement
  2001.     corresponds to one machine language statement (not counting macros).
  2002.  
  2003.     An assembly/machine language program is fast and small.  This is
  2004.     because you are in complete charge of what goes into the program.  Of
  2005.     course, if you write a slow, large, stupid program, then it will run
  2006.     slowly, be too big, and be stupid.  Assembly language (assembler)
  2007.     can't correct stupidity - although sometimes I wish it could ;-).
  2008.  
  2009.     If you are starting out learning about microcontrollers, it would be
  2010.     worth your while first learning assembler.  By programming in
  2011.     assembler, you master the underlying architecture of the chip, which
  2012.     is important if you intend to do anything significant with your
  2013.     microcontroller.
  2014.  
  2015.  
  2016. 7.2)  Interpreters
  2017.  
  2018.     An interpreter is a high level language translator that is closer to
  2019.     natural language.  The interpreter itself is a program that sits
  2020.     resident in the microcontroller.  It executes a program by reading
  2021.     each language statement one at a time and then doing what the
  2022.     statement says to do.  The two most popular interpreters for
  2023.     microcontrollers are BASIC and FORTH.
  2024.  
  2025.     BASIC's popularity is due to its simplicity, readability, and of
  2026.     course just about everyone has at least played with BASIC at one time
  2027.     or another.  One common compaint about [interpreted] BASIC is that it
  2028.     is slow.  Often this can be solved by using a different technique for
  2029.     performing the desired task.  Other times it is just the price paid
  2030.     for using an interpreter.
  2031.  
  2032.     FORTH has a very loyal following due to its speed (approaching that
  2033.     of assembler language) and its incremental approach to building a
  2034.     system from reusable parts.  Many FORTH systems come with a host
  2035.     system which turns your desktop computer into a development system.
  2036.     FORTH can be quite difficult to write in (if you have no experience
  2037.     with it) and is probably even harder to read.  However, it is a very
  2038.     useful and productive language for control systems and robotics, and
  2039.     can be mastered in time.
  2040.  
  2041.     The nicest thing about developing a system with an interpreter is
  2042.     that you can build your program interactively.  You first write a
  2043.     small piece of code and then you can try it out immediately to see
  2044.     how it works.  When the results are satisfactory, you can then add
  2045.     additional components until the final product is achieved.
  2046.  
  2047.  
  2048. 7.3)  Compilers
  2049.  
  2050.     A compiler is a high level language translator that combines the
  2051.     programming ease of an interpreter with greater speed.  This is
  2052.     accomplished by translating the program (on a host machine such as a
  2053.     desktop PC) directly into machine language.  The machine language
  2054.     program is then burned onto an EPROM or downloaded directly to the
  2055.     microcontroller.
  2056.     The microcontroller then executes the translated program directly,
  2057.     without having to interpret first.
  2058.  
  2059.     The most popular microcontroller compilers are C and BASIC.  PL/M,
  2060.     from Intel, also has some popular support due to that company's
  2061.     extensive use of that language.
  2062.  
  2063.     Due to both its popularity and its slow speed, it was only logical
  2064.     that BASIC would appear as a compiled language.  A few companies
  2065.     supply a BASIC compiler for several of the more popular
  2066.     microcontrollers.  Execution speed is drastically increased over
  2067.     interpreted BASIC since the microcontroller is freed from the task of
  2068.     interpreting the statements as the program runs.
  2069.  
  2070.     While interpreted Forth approaches (and sometimes surpasses) the
  2071.     speed of many compilers, compiled Forth screams along.  Today there
  2072.     are many high performance optimizing native code Forth compilers, and
  2073.     there are also lots of very cheap or free public domain Forths.  Some
  2074.     of them like Tom Almy's ForthCMP produces optimized native code with
  2075.     less overhead and better performance than just about anything else
  2076.     out there.  Of course it still has compactness and more elegant
  2077.     factoring of functionality than in most languages.
  2078.  
  2079.     C is now the language of choice for the entire universe.  C is used
  2080.     on computers from the tiny microcontroller up to the largest Cray
  2081.     supercomputer.  Although a C program can be a bit tedious at times to
  2082.     read (due to the terse programming style followed by many C
  2083.     programmers), it is a powerful and flexible development tool.
  2084.     Although a high level language, it also gives the developer access to
  2085.     the underlying machine.  There are several very good and cheap C
  2086.     compilers available for the more popular microcontrollers.  It is
  2087.     widely used, available, supported, and produces fairly efficient code
  2088.     (fast and compact).
  2089.  
  2090.  
  2091. 7.4)  Fuzzy Logic and Neural Networks
  2092.  
  2093.     Fuzzy Logic and neural networks are two design methods that are
  2094.     coming into favor in embedded systems.  The two methods are very
  2095.     different from each other, from conception to implementation.
  2096.     However, the advantages and disadvantages of the two can complement
  2097.     each other.
  2098.  
  2099.     The advantage of neural networks is that it is possible to design
  2100.     them without completely understanding the underlying logical rules by
  2101.     which they operate.  The neural network designer applies a set of
  2102.     inputs to the network and "trains" it to produce the required output.
  2103.     The inputs must represent the behavior of the system that is being
  2104.     programmed, and the outputs should match the desired result within
  2105.     some margin of error.  If the network's output does not agree with
  2106.     the desired result, the structure of the neural network is altered
  2107.     until it does.  After training it is assumed that the network will
  2108.     also produce the desired output, or something close to it, when it is
  2109.     presented with new and unknown data.
  2110.  
  2111.     In contrast, a fuzzy-logic system can be precisely described.  Before
  2112.     a fuzzy control system is designed, its desired logical operation
  2113.     must be analyzed and translated into fuzzy-logic rules.  This is the
  2114.     step where neural networks technology can be helpful to the
  2115.     fuzzy-logic designer.  The designer can first train a software neural
  2116.     network to produce the desired output from a given set of inputs and
  2117.     outputs and then use a software tool to extract the underlying rules
  2118.     from the neural network.  The extracted rules are translated into
  2119.     fuzzy-logic rules.
  2120.  
  2121.     Fuzzy logic is not a complete design solution.  It supplements rather
  2122.     than replaces traditional event control and PID (proportional,
  2123.     integral, and derivate) control techniques.  Fuzzy logic relies on
  2124.     grade of membership and artifical intelligence techniques.  It works
  2125.     best when it is applied to non-linear systems with many inputs that
  2126.     cannot be easily expressed in either mathematical equations used for
  2127.     PID control or IF-THEN statements used for event control.
  2128.  
  2129.     In an effort to change fuzzy logic from a "buzzword" (as it is in
  2130.     most parts of the world) to a well established design method (as it
  2131.     is in Japan), most manufacturers of microcontrollers have introduced
  2132.     fuzzy logic software.  Most software generates code for specific
  2133.     microcontrollers, while other generates C code which can be compiled
  2134.     for any microcontroller.
  2135.  
  2136.  
  2137. 8)  DEVELOPMENT TOOLS
  2138.  
  2139.     Having a programming language is usually not enough to develop a
  2140.     program for a microcontroller.  Some way of debugging your program is
  2141.     needed.  I am only too painfully aware of this fact.
  2142.  
  2143.  
  2144. 8.1)  Simulators
  2145.  
  2146.     A simulator runs your microcontroller program on a host machine (such
  2147.     as your PC).  You can step through the code to see exactly what is
  2148.     happening as the program runs.  Contents of registers or variables
  2149.     can be altered to change the way the program runs.  Eliminates (or at
  2150.     least delays) the erase/burn/program EPROM cycle common in
  2151.     microcontroller program development.  You can work out ideas or learn
  2152.     about microcontrollers by experimenting with small code fragments and
  2153.     watching on the screen what happens.  A simulator can't support real
  2154.     interrupts or devices, and usually runs much slower than the real
  2155.     device the program is intended for.
  2156.  
  2157.     Some manufacturers have a cross between a software simulator and the
  2158.     hardware emulator - a hardware simulator.  This is a piece of
  2159.     equipment that plugs into your target, and the pins will toggle and
  2160.     react like they should - just MUCH slower.  Cost of a device like
  2161.     this is only about $100.  Two such boards by National Semiconductor
  2162.     and Philips are detailed in section 6.2.
  2163.  
  2164.  
  2165. 8.2)  Resident Debuggers
  2166.  
  2167.     A resident debugger runs your program on the microcontroller itself,
  2168.     while showing the progress on your host machine (such as a PC).  Has
  2169.     many of the same advantages as simulator above, with the additional
  2170.     benefit of seeing how the program runs on the real target machine.  A
  2171.     resident debugger needs to "steal" some resources from the target
  2172.     machine, including: a communications port to communicate with the
  2173.     host, an interrupt to handle single stepping, and a certain amount of
  2174.     memory for the resident part (on the target) of the debugger.
  2175.  
  2176.  
  2177. 8.3)  Emulators
  2178.  
  2179.     If you've got the money, this is the equipment you want to develop
  2180.     your system with (yeah, that's right, a preposition at the end of a
  2181.     sentence!).  A [usually] expensive piece of hardware that even for
  2182.     the cheaper versions will run you at least $700.  An emulator is a
  2183.     sophisticated device that pretends that it is the microprocessor
  2184.     itself, while at the same time capturing information.  It provides
  2185.     full and total control over your target, while at the same time not
  2186.     requiring any resources from the target.  The emulator can either be
  2187.     a stand alone device with its own display, or it can be interface to
  2188.     a PC.
  2189.  
  2190.  
  2191. 8.4)  Good Stereo System
  2192.  
  2193.     This is the most important tool for the microcontroller developer, or
  2194.     for any computer system developer for that matter.  Don't expect to
  2195.     get anywhere unless you have the proper music playing in the
  2196.     background(?) at the proper volume.  I find that I do my best work
  2197.     with the Rolling Stones (especially Goats Head Soup) or Clapton
  2198.     (especially early stuff like Cream - Disraeli Gears is a killer
  2199.     album!).  The volume must be set to cause excrutiating pain to be
  2200.     most effective.  Trust me on this ;-).
  2201.  
  2202.     Tom Mornini of Parallax reports:  "Johnny Cash also has a certain
  2203.     effectiveness, as well as the Beatles, Aerosmith, and Rush!  60's
  2204.     rock and British invasion bands in particular seem to have a
  2205.     particularly productive effect."
  2206.  
  2207.     This would be an interesting topic for an in-depth study.
  2208.     Particularly intriguing, is if certain types of music work better
  2209.     with specific [families of] processors.  Another question in need of
  2210.     study would be if it's really true that the smaller the chip (in
  2211.     bits), the louder the music needs to be.
  2212.  
  2213.  
  2214. 9)  FINDING OUT MORE ABOUT MICROCONTROLLERS
  2215.  
  2216.     If you are interested in learning more about microcontrollers, there
  2217.     are many fine sources of information.  You have your choice of
  2218.     printed media (books, periodicals, informative graffiti) or
  2219.     interactive (right here on the Internet, or BBSs).
  2220.  
  2221.  
  2222. 9.1)  Books
  2223.  
  2224.     8-bit Microcontroller Instruction Set Performance
  2225.         - Digitial Systems Consulting / June 1994
  2226.         - compares Motorola's M68HC05, Intel's 80x51,
  2227.             Microchip's PIC16C5x, and National's COP8
  2228.         - lit number 630008
  2229.         - (800)272-9959 call this number for copies
  2230.  
  2231.     The 16 bit 8096:  Programming, Interfacing, Applications
  2232.         - Ron Katz and Howard Boyet
  2233.         - Microprocessor Training Inc
  2234.           14 East 8th Street, New York, NY  10003
  2235.           212-473-4947
  2236.         - Library of Congress Catalog card number:  85-61954
  2237.         - According to William Chernoff:  "The book is pretty good -
  2238.           mostly software examples.  The one hardware thing I looked
  2239.           closely at was wrong - a schematic error.  Oh well."
  2240.  
  2241.     The 68hc11 Microcontroller
  2242.         - Joseph D. Greenfield (at R.I.T.)
  2243.         - Saunders College Publishing, (Harcourt Brace Jovanovich)
  2244.         - 1992
  2245.         - ISBN 0-03-051588-2
  2246.         - A number of the sections make use of the Buffalo monitor.
  2247.           This could be useful if you are using the Motorola Trainer EVB.
  2248.  
  2249.     The 8051 Family of Microcontrollers
  2250.         -Richard H. Barnett
  2251.         -Prentice-Hall, 1995 (yeah, that's right, 1995!)
  2252.         -ISBN 0-02-306281-9
  2253.  
  2254.     8051 Interfacing and Applications
  2255.         - Applied Logic Engineering
  2256.           13008 93rd Place North, Maple Grove, MN  55369
  2257.         - (612)494-3704
  2258.  
  2259.     The 8051 Microcontroller
  2260.         - I. Scott MacKenzie
  2261.         - Macmillan Publishing Company, 1992
  2262.         - includes schematics for a single-board computer,
  2263.           assembly-language source code for a monitor program, and
  2264.           interfaces to a keypad, LEDs, and loudspeaker.
  2265.  
  2266.     The 8051 Microcontroller
  2267.         - James W. Stewart
  2268.         - Regents/Prentice-Hall, 1993
  2269.         - $27.50, 273 pages
  2270.         - includes many interfacing examples (switches, solenoids,
  2271.           relays, shaft encoders, displays, motors, and A/D converters)
  2272.           and a chapter on top-down design method
  2273.  
  2274.     The 8051 Microcontroller: Architecture, Programming and Applications
  2275.         - Kenneth J. Ayala
  2276.         - 241 pages, soft cover
  2277.         - 5.25" diskette with assembler and simulator
  2278.         - ISBN 0-314-77278-2, Dewey 004.165-dc20
  2279.         - West Publishing Company
  2280.           P.O. Box 64526, St. Paul, MN  55164
  2281.           (800)328-9352
  2282.         - see review in next section
  2283.  
  2284.     The Art of Programming Embedded Systems
  2285.         - Jack G. Ganssle
  2286.         - 1992, 279pp, $55.00
  2287.         - ISBN: 0-12-274880-0
  2288.         - CONTENTS: Introduction, Initial Considerations.  Elegant
  2289.           Structures.  Designs for Debugging.  Design for Test.  Memory
  2290.           Management.  Approximations. Interrupt Mamangement.  Real-Time
  2291.           Operating Systems.  Signal Sampling and Smoothing.  A Final
  2292.           Perspective.  Appendixes: Magazines, File Format.  Serial
  2293.           Communications.  Bibliography.  Index.
  2294.  
  2295.     Assembly Language Programming (for the MCS-51 family)
  2296.         - F. A. Lyn
  2297.         - L. S. Electronic Systems Design
  2298.  
  2299.     Basic-52 Programmer's Guide
  2300.         - Systronix, Inc. (they also sell a Basic compiler)
  2301.         - address above
  2302.  
  2303.     Beginner's Guide
  2304.         - Suncoast Technologies
  2305.  
  2306.     A Beginners Guide to the Microchip PIC
  2307.         - Nigel Gardner
  2308.         - Character Press, Ltd. (UK)
  2309.         - ISBN 1 899013 00 8
  2310.         - software (on floppy) and hardware guide, debugging techniques
  2311.         - suitably titled, for those with no previous microcontroller
  2312.           experience
  2313.         - 19.95 UK Pounds
  2314.  
  2315.     The PIC Source Book:
  2316.         - assembly language source code on diskette
  2317.         - $39
  2318.         - Scott Edwards Electronics
  2319.           964 Cactus Wren Lane, Sierra Vista, AZ  85635
  2320.           (602)459-4802    Fax: (602)459-0623
  2321.           72037.2612@compuserve.com
  2322.  
  2323.     C and the 8051
  2324.         - Thomas W. Schultz
  2325.         - Prentice Hall
  2326.         - ISBN 0-13-753815-4
  2327.  
  2328.     Data Acquisition and Process Control with the M68HC11 Microcontroller
  2329.         - Frederick Driscoll, Robert Coughlin, Robert Villanucci of
  2330.           Wentworth Institute of Technology.
  2331.         - Macmillan Publishing Company
  2332.         - 1994
  2333.         - ISBN 0-02-33055-X
  2334.         - Several Chapters on the 68HC11, instructions, and EVB;
  2335.           chapters on interfacing Analog and Digital signals to the
  2336.           68HC11;  example applications of interfaces to temperature,
  2337.           load cell, pressure and thermocouple sensors.
  2338.         - a good companion to Motorola's "pink" books
  2339.  
  2340.     Data book / Handbook / Users' Guide
  2341.         - Advanced Micro Devices
  2342.         - Dallas (User's guide for the DS5000)
  2343.         - Intel
  2344.         - Siemens
  2345.  
  2346.     Design with Microcontrollers
  2347.         - John B. Peatman
  2348.         - ISBN 0-07-049238-7
  2349.         - This book is on a more advanced level.  Uses both the 68hc11
  2350.           and Intel 8096 as example systems.
  2351.         - Used for a very popular course on microcontroller design at
  2352.           Georgia Tech.
  2353.  
  2354.     Embedded Controller Forth for the 8051 Family
  2355.         - Academic Press
  2356.         - William H. Payne
  2357.         - uses a Forth development system available on the Internet
  2358.  
  2359.     Embedded Controllers Databook 1992 Edition
  2360.         - National Semiconductor Corporation
  2361.         - literature number: 400049
  2362.         - (800)272-9959 call this number for for copies
  2363.  
  2364.     Embedded Systems Programming in C and Assembler
  2365.         - John Forrest Brown
  2366.         - Van Nostrand Reinhold, 1994
  2367.         - 304 pages, $49.95
  2368.         - ISBN 0-442-01817-7
  2369.         - covers Motorola and Intel processors
  2370.         - includes diskette with code from the book
  2371.         - book review in Dr. Dobb's Journal, November 1994, page 121
  2372.  
  2373.     Experimenter's guide
  2374.         - Rigel Corporation
  2375.  
  2376.     Introduction to Microcontroller Design, Based on the 8051 family of
  2377.     Processors
  2378.         - Business Data Computers
  2379.           P.O. Box 1549, Chester, CA  96020
  2380.  
  2381.     M68hc11 Reference Manual
  2382.         - Motorola - literature reference M68HC11RM/AD
  2383.         - This document is the "bible" of the 6811 and is a must-have
  2384.           for any serious 6811 programmer.
  2385.  
  2386.     MC68hc811E2 Programming Reference Guide
  2387.         - Motorola - literature reference M68HC811E2RG
  2388.         - A pocket-sized guide to the version of the 6811 used on the
  2389.           Mini Board
  2390.  
  2391.     The Microcontroller Idea Book
  2392.         - Jan Axelson (of Microcomputer Journal fame)
  2393.         - features the 8052-BASIC microcontroller
  2394.         - hands-on guide with complete plans (schematics, design theory,
  2395.           program listings, construction details, etc)
  2396.         - explains how to use sensors, relays, displays, clock/calendars,
  2397.           keypads, wireless links, and more
  2398.         - 1994, 273 pages, $31.95 + shipping
  2399.         - Lakeview Research, 2209 Winnebago St., Madison, WI  53704
  2400.           (608)241-5824  Internet: 71163.3555@compuserve.com
  2401.         - contact the author at janaxel@aol.com
  2402.  
  2403.     Microcomputer Engineering
  2404.         - Gene H. Miller
  2405.         - Prentice Hall, Englewood Cliffs, NJ  07632
  2406.         - 1993
  2407.         - ISBN 0-13-584475-4
  2408.         - Explains the basics.  Many clear and concise assembly language
  2409.           example programs.
  2410.         - Written to be used with the Motorola Trainer (EVB).
  2411.  
  2412.     Microcontroller Technology, The 68hc11
  2413.         - Peter Spasov
  2414.         - Prentice Hall
  2415.         - ISBN 0-13-583568-2
  2416.  
  2417.     Microcontrollers: Architecture, Implementation, and Programming
  2418.         - Kenneth Hintz and Daniel Tabak
  2419.         - McGraw-Hill Inc.  1992
  2420.         - ISBN 0-07-028977-8
  2421.  
  2422.     PIC 16Cxx Development Tools instructions manuals
  2423.         - Parallax, Inc.
  2424.         - Instruction manual for the Parallax PIC assemblers
  2425.         - Instruction manual for the Parallax Software Simulator
  2426.         - Instruction manual for the Parallax PIC programmer hardware
  2427.         - Details the Parallax PIC instruction set
  2428.  
  2429.     PIC 16Cxx Applications Handbook
  2430.         - Parallax, Inc.
  2431.         - Contains condensed data sheets for '5x, '64, '71, and '84
  2432.           controllers
  2433.         - Contains 14 application notes showing circuits and code for
  2434.           common projects using the PIC series of microcontrollers.
  2435.  
  2436.     Posix.4:  Programming for the Real World
  2437.         - Bill O. Gallmeister
  2438.         - O'Reilly and Associates, 1995
  2439.         - ISBN 1-56592-074-0
  2440.         - Part I of the book describes the Posix standard (what it is,
  2441.           what it isn't, and what it's for), and explains the principles
  2442.           of real time programming (tasking, messages, scheduling, I/O,
  2443.           and performance) and why Unix isn't fit for real-time
  2444.           programming.  Part II is a reference on the Posix functions and
  2445.           header files.  Part III contains much of the code for the
  2446.           exercises in the book.
  2447.  
  2448.     Programmer's Guide to the 1802
  2449.         - Tom Swan
  2450.         - Hayden Book Company, Inc., 1981
  2451.         - ISBN 0-8104-5183-2
  2452.         - good introduction to assembly language progamming and an
  2453.           thorough tutorial on the 1802
  2454.  
  2455.     Programming Microcontrollers in C
  2456.         - Ted Van Sickle
  2457.         - HighText Publications, 1994
  2458.         - 394 pages, $29.95
  2459.         - ISBN 1-878707-14-0
  2460.         - thorough tutorial on C programming, covers aspects of C
  2461.           programming specific to embedded systems
  2462.         - covers the Motorola line of microcontrollers (small to large)
  2463.         - book review in Dr. Dobb's Journal, November 1994, page 121
  2464.  
  2465.     The Real-Time Kernel
  2466.         - Jean Labrosse
  2467.         - R&D Publications, Inc.
  2468.           Suite 200 1601 W 23rd St., Lawrence, KS  66046
  2469.         - (913)841-1631   Fax: (913)841-2624
  2470.         - Based on the article "A Portable Real Time Kernel in C"
  2471.           in Embedded Systems Programming (Part 1: vol 5 no 5
  2472.           May 1992, Part 2: vol 5 no 6 June 1992)
  2473.         - originally written for the Intel 186 but ported to HC11
  2474.           source code for UCOS11
  2475.  
  2476.     Single- and Multiple-Chip Microcomputer Interfacing
  2477.         - G.J. Lipovski
  2478.         - Copyright 1988
  2479.         - 478 pages
  2480.         - ISBN 0-13-810557-X (Prentice-Hall Edition)
  2481.           ISBN 0-13-810573-1 (Motorola Edition)
  2482.         - Based around the 68HC11 it covers both hardware and
  2483.           software at undergraduate level, but the emphasis is on
  2484.           interfacing.
  2485.         - Chapter titles:
  2486.                1  Microcomputer Architecture
  2487.                2  Programming Microprocessors
  2488.                3  Bus Hardware and Signals
  2489.                4  Parallel and Serial I/O
  2490.                5  Interrupts and Alternatives
  2491.                6  Analog Interfacing
  2492.                7  Counters and Timers
  2493.                8  Communications Systems
  2494.                9  Storage and Display Systems
  2495.  
  2496.     Single- and Multiple- Chip Microcomputer Interfacing (Lab Manual)
  2497.         - Peter Song and G. Jack Lipovski
  2498.         - Prentice-Hall, 1988
  2499.         - ISBN 0-13-811605-9
  2500.         - Support for the above book.  Examples based around the Motorola
  2501.           EVB and the BUFFALO monitor or the EVBU (or 3-chip micro) and
  2502.           PC-Bug11.
  2503.  
  2504.     User Manual for the CDP1802 COSMAC Microprocessor
  2505.         - RCA, 1977
  2506.         - contains useful hardware and software techniques
  2507.  
  2508.  
  2509. 9.2)  Data and Reference Books
  2510.  
  2511.     Motorola
  2512.         - M68hc11 Reference Manual, ref # M68HC11RM/AD
  2513.              this document is the "bible" of the 6811 and is a must-have
  2514.                for any serious 6811 programmer
  2515.              contact Motorola at 800-521-6274 (in the U.S.) to get a free
  2516.                copy of this manual
  2517.         - MC68hc811E2 Programming Reference Guide, ref # M68HC811E2RG
  2518.              a pocket-sized guide to the version of the 6811 used on the
  2519.              Mini Board, "ownership of this handy reference is proof of
  2520.              being a true 6811 nerd" - by Fred Martin
  2521.  
  2522.     National Semiconductor - (800)272-9959 for copies
  2523.         - COP8 Databook, ref # 400007
  2524.         - COP8 Selection Guide, ref # 630006
  2525.         - COP8 Designers Information Kit, ref # 6300007-005
  2526.              contains: - COP8 Databook (1994 Edition)
  2527.                        - COP8 Selection Guide (1994 Edition)
  2528.                        - Independent 8-bit Instruction Set Analysis
  2529.                        - Independently prepared software analysis of
  2530.                          National's COP8, Motorola's M68Hc05, Intel's
  2531.                          80X51, and Microchip's PIC16C5X
  2532.                        - Utility and Overview Disks
  2533.                        - Self-lead overview on COP8, includes electronic
  2534.                          selection guide and sample application code
  2535.         - COP8 Utility Disk, Mac ref # 6300000, Windows ref # 630001
  2536.              typical microcontroller applications and sample code
  2537.              available by ftp nscmicro.nsc.com in/pub/COP8
  2538.         - COP8 Overview Disk, Mac ref # 630004, Windows ref # 630005
  2539.              self-lead COP8 overview, shows product features/benifits
  2540.                 and includes a electronic selection guide (2 disks)
  2541.              available by ftp nscmicro.nsc.com in /pub/COP8
  2542.  
  2543.  
  2544. 9.3)  Periodicals
  2545.  
  2546.     Various magazines and journals (journals seems to be THE popular name
  2547.     for magazines these days) provide articles from time to time on
  2548.     microcontrollers.  If you are just starting out learning, pick those
  2549.     magazines that feature construction articles.
  2550.  
  2551.     The Computer Applications Journal (Circuit Cellar Ink)
  2552.         - programming and construction articles
  2553.         - POB 7694, Riverton, NJ  08077-8784
  2554.         - Fax: (203)872-2204
  2555.         - Voice orders: (609) 786-0409
  2556.         - On-line orders (BBS): (203) 871-1988
  2557.         - Email orders: ken.davidson@circellar.com
  2558.         - $21.95, $31.95 surface Canada and Mexico,
  2559.           $49.95 air all other countries
  2560.  
  2561.     Computer Design
  2562.         - industry announcements and trends
  2563.         - One Technology Park Drive, P.O. Box 990, Westford, MA  01886
  2564.         - (508)692-0700
  2565.  
  2566.     The Computer Journal
  2567.         - programming and construction articles
  2568.         - PO Box 535, Lincoln  96648
  2569.  
  2570.     Dr. Dobbs Journal
  2571.         - programming articles, concepts, and designs
  2572.         - 411 Borel Ave., San Mateo, CA  94402
  2573.         - (415)358-9500
  2574.  
  2575.     Electronic Engineering Times
  2576.         - industry announcements and trends
  2577.         - 500-B Bi-County Boulevard, Farmingdale, NY  11735
  2578.         - (516)293-3000
  2579.  
  2580.     Electronics Now
  2581.         - construction articles
  2582.         - Box 55115, Boulder, CO  80321-5115
  2583.         - $19.97 one year
  2584.  
  2585.     Elektor Electronics
  2586.         - programming and construction articles
  2587.         - World Wide Subscription Service Ltd
  2588.           Unit 4, Gibbs Reed Farm, Pashley Road
  2589.           Ticehurst TN5 7HE, England
  2590.         - 27 UK pounds
  2591.      or
  2592.         - Old Colony Sound Lab, P.O. Box 243, Peterborough, NH 03458
  2593.         - Tel. (603) 924-6371, 924-6526
  2594.         - Fax: (603) 924-9467
  2595.         - $57 USA and Canada per year
  2596.  
  2597.     Embedded Systems Programming
  2598.         - programming and systems design articles
  2599.         - Miller Freeman Publications
  2600.         - 500 Howard St., San Francisco, CA  94105
  2601.         - (415) 397-1881
  2602.  
  2603.     Inquisitor Magazine
  2604.         - If you're the type that watched Gilligan's Island for its
  2605.           socio-political insights, then you'll love a new 'zine that
  2606.           just crossed my desk - Inquisitor Magazine.  It's general
  2607.           philosophy seems to be ... well, it seems to be ... uh, yeah!
  2608.           Technical in nature, bizarre, tongue in cheek, eclectic,
  2609.           electric, did I mention bizarre(?), and lots of fun.  Worth
  2610.           looking at if you like the out of the ordinary.  The moving
  2611.           force behind this magazine is Daniel Drennan, who seems to have
  2612.           suffered from an overdose of radiation from his computer
  2613.           monitor ;-).
  2614.         - Planetarium Station, P.O.Box 132
  2615.           New York, NY  10024-0132
  2616.         - (212)595-8370
  2617.         - Email: inquisitor@echonyc.com
  2618.         - $16 per year (4 issues)
  2619.  
  2620.     Microcomputer Journal (formerly Computer Craft)
  2621.         - programming and construction articles
  2622.         - 76 N. Broadway, Hicksville, NY  11801
  2623.         - $18.95 one year, foreign $23.00, foreign air mail $76.00
  2624.  
  2625.     Midnight Engineering
  2626.         - 1700 Washington Ave., Rocky Road, CO  81067
  2627.         - (719)254-4553
  2628.  
  2629.     MW Media - Product Directories
  2630.         - Motorola Microcontroller Tools Directory
  2631.           ('94 edition out in 3 weeks)
  2632.         - Motorola 68K Source ('94 edition available now)
  2633.         - Intel Development Tools Handbook ('95 edition just beginning)
  2634.           (survey of commercial development tools for the 8051, 8096,
  2635.           and 80186 lines of Intel microprocessors)
  2636.         - Embedded Intel 386 Directory (released in Aug '94)
  2637.         - Intel 486/Pentium directory (forthcoming in '95)
  2638.         - 8051 Product Directory ('94 edition out in 4 weeks)
  2639.           (survey of various 8051 products)
  2640.         - Hitachi Microcontroller Development Tools Directory
  2641.           (out in '95)
  2642.         - AMD FusionE86 Directory (out in '95)
  2643.           (186,386,486)
  2644.         - AMD 29K Directory (pending in '95)
  2645.         - Low Power Product Directory (out in '95)
  2646.           (3.3. volts and lower)
  2647.         - DSP Directory (released in May '94)
  2648.         - Multimedia CD (hopefully out in '95)
  2649.         - These documents could very well be a "must" if you're into
  2650.           serious development using any of these chips.  If you are
  2651.           "just" a hobbyist, see how the "other half" lives.
  2652.         - FREE to qualified developers
  2653.         - MW Media
  2654.         - Fairmont Plaza, 50 W. San Fernando, #675, San Jose, CA  95113
  2655.         - (408)288-4721   (408)286-4200   FAX: (408)288-4728
  2656.  
  2657.     Nuts & Volts Magazine
  2658.         - A National Publication for the Buying and Selling of
  2659.           Electronic Equipment
  2660.         - 430 Princeland Court, Corona, CA  91719
  2661.         - Mailed third class, USA only:  $17.00 one year
  2662.                                          $31.00 two years
  2663.         - Mailed first class, one year only:  $34.00-USA
  2664.                                               $35.00-Canada/Mexico
  2665.         - Foreign/Air Mail - $70.00;  Foreign/Surface - $39.00
  2666.         - (800)783-4624
  2667.         - Email:  74262.3664@Compuserve.com
  2668.  
  2669.  
  2670. 9.4)  Internet newsgroups
  2671.  
  2672.     Various newsgroups frequently have discussions or information on
  2673.     various microcontrollers.  Among some of the more useful (especially
  2674.     the first 3 newsgroups):
  2675.  
  2676.     comp.robotics
  2677.        Microcontrollers figure heavily in robotics projects.  You will
  2678.        find a lot of information about the subject in this newsgroup.
  2679.        Even if you aren't building a robot, check this newsgroup out.
  2680.        Lots of 68hc11 activity, too.
  2681.  
  2682.     sci.electronics
  2683.     alt.comp.hardware.homebuilt
  2684.        Two good places to find [mostly technical] discussions on
  2685.        microcontroller use and implementation.  Most of the participants
  2686.        are crazy about "rolling their own", and are eager to share their
  2687.        knowledge.
  2688.  
  2689.     comp.realtime
  2690.        Occasional discussions about real-time use of microcontollers.
  2691.  
  2692.     comp.sys.m68k
  2693.        The full line of Motorola 68000 microprocessors is discussed in
  2694.        this newsgroup, including the very powerful and advanced
  2695.        microcontrollers based on this family.
  2696.  
  2697.     comp.sys.6809
  2698.        This newsgroup covers an old-time favorite, the 6809
  2699.        microprocessor, which is commonly used for control applications.
  2700.        Motorola 8 bit microprocessors and microcontrollers (6805, 6811,
  2701.        etc.) are also discussed in this newsgroup.
  2702.  
  2703.     comp.sys.intel
  2704.        Mostly trends and development are discussed in this newsgroup.
  2705.        From time to time you will find a discussion on some obtuse
  2706.        technical problem or feature.  Lately, the participants seem to
  2707.        spend all of their time whining about the Pentium bug.
  2708.  
  2709.     comp.lang.misc
  2710.        Sometimes questions or discussions on different microcontroller
  2711.        topics pop up here.  I guess it's the ".misc" that attracts these
  2712.        questions.
  2713.  
  2714.     comp.ai.fuzzy
  2715.        Fuzzy logic is rapidly becoming an increasingly important aspect
  2716.        of [microcontroller based] control systems.  This group might very
  2717.        well become an important forum for those involved in developing
  2718.        control systems.
  2719.  
  2720.     comp.dsp
  2721.        Discussions on Digital Signal Processsing
  2722.  
  2723.     comp.sys.ti
  2724.        Texas Instruments products discussed here
  2725.  
  2726.     sci.engr.control
  2727.        This forum is for the discussion of control and embedded systems.
  2728.  
  2729.     sci.engr.semiconductors
  2730.  
  2731.  
  2732. 9.5)  Internet sources of information on specific microcontrollers
  2733.  
  2734.     If you are interested in finding sources of information on a specific
  2735.     microcontroller, check out the really fine FAQs ;-) that have been
  2736.     compiled for the more popular microcontrollers.
  2737.  
  2738.       Subject:  PIC microcontrollers
  2739.       Newsgroups:  comp.realtime
  2740.                    comp.robotics
  2741.                    sci.electronics
  2742.                    sci.electronics.repair
  2743.       Archive:  rtfm.mit.edu :  <plus all mirror sites>
  2744.                 /pub/usenet/comp.answers/microcontroller-faq/PIC
  2745.                 /pub/usenet/sci.answers/microcontroller-faq/PIC
  2746.                 /pub/usenet/news.answers/microcontroller-faq/PIC
  2747.       Maintainer:  Tom Kellett
  2748.                    Email: Tom@takdsign.demon.co.uk
  2749.  
  2750.       Subject:  8051 microcontrollers
  2751.       Newsgroups:  comp.sys.intel
  2752.                    comp.realtime
  2753.                    comp.robotics
  2754.                    comp.lang.forth
  2755.                    sci.electronics
  2756.       Archive:  rtfm.mit.edu :  <plus all mirror sites>
  2757.                 /pub/usenet/comp.answers/microcontroller-faq/8051
  2758.                 /pub/usenet/sci.answers/microcontroller-faq/8051
  2759.                 /pub/usenet/news.answers/microcontroller-faq/8051
  2760.       Maintainer:  Russ Hersch
  2761.                    Email: sibit@datasrv.co.il
  2762.  
  2763.       Subject:  68hc11 microcontrollers
  2764.       Newsgroups:  comp.realtime
  2765.                    comp.robotics
  2766.                    sci.electronics
  2767.       Archive:  rtfm.mit.edu :  <plus all mirror sites>
  2768.                 /pub/usenet/comp.answers/microcontroller-faq/68hc11
  2769.                 /pub/usenet/sci.answers/microcontroller-faq/68hc11
  2770.                 /pub/usenet/news.answers/microcontroller-faq/68hc11
  2771.       Maintainer:  Russ Hersch
  2772.                    Email: sibit@datasrv.co.il
  2773.  
  2774.       Subject:  Motorola 68K microprocessor line
  2775.       Newsgroups:  comp.sys.m68k
  2776.       Archive:  bode.ee.ualberta.ca : pub/motorola/general
  2777.                 ftp.luth.se : /pub/misc/motorola/faq
  2778.                 file name of archive is m68kfaq?.zip (? is version)
  2779.       Comments:  also includes information on the 683xxx and 68hc16
  2780.       Maintainer:  Robert Boys - Ontario, Canada
  2781.                    Email: r.boys@genie.geis.com
  2782.                                  or
  2783.                           fboys@uoguelph.ca
  2784.  
  2785.  
  2786.     Several other FAQs have been compiled that address various aspects of
  2787.     microcontroller design and implementation.
  2788.  
  2789.       Subject:  Robotics
  2790.       Newsgroups:  comp.robotics
  2791.       Maintainer:  Kevin Dowling
  2792.                    (412)268-8830
  2793.                    Email: nivek@ri.cmu.edu
  2794.                    Smail: Carnegie Mellon University
  2795.                           The Robotics Institute
  2796.                           Pittsburgh, PA 15213
  2797.  
  2798.       Subject:  Electronics
  2799.       Newsgroups:  sci.electronics
  2800.       Comments:  There are a number of FAQs available in this newsgroup
  2801.                  on various subjects.  Among some of the subjects covered
  2802.                  are:  LCDs, stepper motors, suppliers, etc.
  2803.  
  2804.       Subject:  Real-time
  2805.       Newsgroups:  comp.realtime, comp.answers, news.answers
  2806.       Archive:  rtfm.mit.edu : pub/usenet/comp.realtime
  2807.       Maintainer:  Mark Linimon
  2808.                        Lonesome Dove Computing Services
  2809.                        Roanoke, Virginia
  2810.                    Email: linimon@nominil.lonesome.com.
  2811.  
  2812.       Subject:  Neural Networks
  2813.       Newsgroups:  comp.ai.neural-nets,comp.answers,news.answers
  2814.       Archive:  rtfm.mit.edu : pub/usenet/neural-net-faq
  2815.       Maintainer:  Lutz Prechelt
  2816.                    Email: prechelt@ira.uka.de
  2817.  
  2818.       Subject:  Fuzzy Logic
  2819.       Newsgroups:  comp.ai.fuzzy,comp.answers,news.answers
  2820.       Archive:  rtfm.mit.edu : pub/usenet/fuzzy-logic/
  2821.       Maintainer:  Mark Kantrowitz
  2822.                    Email: mkant+@cs.cmu.edu
  2823.  
  2824.       Subject:  Embedded Systems FAQ Roadmap
  2825.       Comments:  Lists various sources of information on embedded systems
  2826.                  found on the Internet
  2827.       Archive:  email cera@netcom.com
  2828.                 send EMBFAQ in SUBJECT line
  2829.       Maintainer:  CERA Research
  2830.  
  2831.  
  2832. 10)  MICROCONTROLLER FREE SOFTWARE SOURCES
  2833.  
  2834.     This section includes descriptions and references to free
  2835.     microcontroller software.  FTP sites and BBSs contain many quality
  2836.     packages and code samples for free.  For heavy duty use, you might
  2837.     prefer the many commercial packages that are available.  With the
  2838.     public domain (or free) stuff, you're usually on your own.  The
  2839.     commercial packages usually provide extensive documentation and
  2840.     support.
  2841.  
  2842.     If you are looking for commercial software for the 8051, 68hc11, or
  2843.     PIC, then check out the FAQs on these microcontrollers for details on
  2844.     what is available.
  2845.  
  2846.  
  2847. 10.1)  FTP sites
  2848.  
  2849.     The following is a list of the anonymous ftp sites that have source
  2850.     code and programming languages for various microcontrollers.  There
  2851.     are many others that  are not listed here that contains bits and
  2852.     pieces.  Usually you can find them using Archie and searching for
  2853.     variations on the name of the microntroller you are looking for.
  2854.  
  2855.     ftp.pppl.gov (formerly lyman.pppl.gov)
  2856.         - this is a great source of 8051 stuff
  2857.         /pub/8051
  2858.         /pub/incoming - check this out for new untested/unsorted items
  2859.  
  2860.     ftp.mcc.ac.uk
  2861.         - this is a new 8051 ftp site
  2862.  
  2863.     ftp.intel.com
  2864.         - good source of stuff the MCS-51 and MCS-96 families
  2865.         /pub/mcs51 - various development tools and sample code for the
  2866.                      MCS-51 family
  2867.         /pub/mcs96 - various development tools and sample code for the
  2868.                      MCS-96 family
  2869.  
  2870.     nctuccca.edu.tw
  2871.         - mirror of ftp.intel.com
  2872.         /vendors/Intel
  2873.  
  2874.     freeware.aus.sps.mot.com (Motorola)
  2875.         - the ftp site version of the freeware BBS
  2876.         - lots of free software for the HC05, HC08, HC11, HC16, 680x0,
  2877.           683xx, and PowerPC
  2878.         - also see the Web pages in the next section
  2879.  
  2880.     nscmicro.nsc.com
  2881.         - the authoratative source for COP8 infomation
  2882.         /pub/COP8 - various develepment tools and sample code for the
  2883.                     COP8 family including most application notes
  2884.  
  2885.  
  2886.     ftp.ee.ualberta.ca (preferred address)
  2887.     bode.ee.ualberta.ca
  2888.     wattson.ee.ualberta.ca
  2889.         - HUGE archive of all sorts of stuff on the 68hc11 (lots of other
  2890.           good stuff too!)
  2891.         - you'll have fun mucking around this ftp site, there's piles of
  2892.           stuff here
  2893.         /pub/cookbook
  2894.         /pub/motorola
  2895.         /pub/motorola/68hc11
  2896.         /pub/motorola/mcu11
  2897.  
  2898.     cherupakha.media.mit.edu (cher.media.mit.edu)
  2899.         - HUMONGOUS archive of all sorts of stuff on the 68hc11 including
  2900.           the 6.270 robotics project, Mini Board, F1 board, and more
  2901.           (lots of other good stuff too!)
  2902.         - you'll lose yourself rooting around this ftp site, there's
  2903.           piles of stuff here (assemblers, tools, C compilers, plans and
  2904.           schematics, and many other items)
  2905.         /pub/6270 - tools, docs, schematics, etc. for the MIT 6.270
  2906.           robotics project using a 68hc11-based development system
  2907.         /pub/6811 - software, schematics, etc. for the 68hc11-based F1
  2908.           board
  2909.         /pub/incoming - various unsorted or new items
  2910.         /pub/miniboard - software, docs, schematics, etc. for the 3"x2",
  2911.           68hc11-based Mini Board controller
  2912.  
  2913.     ftp.funet.fi (nic.funet.fi)
  2914.         - this is a good source for various microcontrollers
  2915.         /pub/microprocs/ (subdirectories include: 1802, 6805, 8048,
  2916.            8051, 8096, PIC and many other microprocessors)
  2917.  
  2918.     ftp.sics.se
  2919.         - many assemblers, utilities, and application notes for the PIC
  2920.         - Microchip BBS mirror
  2921.         - ftp site of Memec Scandinavia, Microchip's Swedish agent.
  2922.         /pub/mchipsoft
  2923.  
  2924.     ernie.uvic.ca
  2925.         - files provided by local Motorola representative
  2926.         /pub (subdirectories include: ibm, dsp96k, dsp56100, dsp56k,
  2927.           dsptools, develop, mac, mcu302, mcu332, mcu11, pgmr, mcu16,
  2928.           mcu, market, qa, general, m68k, evm, dsp)
  2929.  
  2930.     wpi.wpi.edu
  2931.         - basic stamp information
  2932.         - PIC "C" compiler
  2933.         /stamp
  2934.  
  2935.     ftp.std.com
  2936.         /vendors/microchip/
  2937.  
  2938.     ftp.luth.se
  2939.         /pub/misc/microchip - PIC information
  2940.         /pub/misc/microchip/stamp/mirror - mirror of wpi.wpi.edu
  2941.         /pub/languages/assembler - various freeware assemblers
  2942.  
  2943.     ti.com
  2944.         read the 00readme file first or you'll be lost
  2945.  
  2946.     hpcsos.col.hp.com
  2947.         /misc/ns32k/beowulf
  2948.  
  2949.     ftp.netcom.com
  2950.         /pub/imagecft - prerelease version of ImageCraft C for 68hc11
  2951.  
  2952.     info@circellar.com - Email (not ftp)
  2953.         - send Email to get information file on services available
  2954.         - all Circuit Cellar INK and BYTE related files available
  2955.  
  2956.     asterix.inescn.pt - FORTH archive
  2957.         /pub/forth
  2958.  
  2959.     ftp.ultranet.com
  2960.         /biz/mchip - PIC information
  2961.         - also see the Web page: http://www.ultranet.com/biz/mchip
  2962.  
  2963.     ftp.mrc-bbc.ox.ac.uk
  2964.         /pub/microchip
  2965.  
  2966.     ftp.oak.oakland.edu
  2967.         - has information and software for a wide range of
  2968.           microprocessors and microcontrollers
  2969.  
  2970.     ftp.uni-erlangen.de
  2971.         - information on PIC
  2972.         /mounts/epix/public/pub/Multimedia/VideoCrypt/
  2973.             microcontroller/microchip.bbs
  2974.  
  2975.     ftp.armory.com (Steve Walz)
  2976.         - /pub/user/rstevew/8051
  2977.         - /pub/user/rstevew/TB8051
  2978.         - /pub/user/rstevew/incoming
  2979.  
  2980.     ftp.cygnus.com (Jeff Fox)
  2981.         - source of information and software on the MuP21 Forth
  2982.           microcontroller
  2983.         /pub/forth - MUP21FTP.ZIP includes a software simulator for
  2984.             the MuP21 and and the upcoming F21.
  2985.         also see the Web page: http://www.dnai.com/~jfox
  2986.  
  2987.     ftp.best.com
  2988.         /pub/cera
  2989.     ftp.netcom.com
  2990.         /pub/ce/cera
  2991.         - embedded systems FTP archive
  2992.  
  2993.     ftp.parallaxinc.com
  2994.         /pub
  2995.         - ftp site of Parallax
  2996.           "Cool PIC development tools & the BASIC Stamp"
  2997.  
  2998.     ftp.std.com - Minds-Online ftp site
  2999.         /customers2/nonprofits/minds-online
  3000.         - Chock full of compilers, assemblers, code, articles, fuzzy
  3001.           logic, and much more.
  3002.  
  3003.  
  3004. 10.2)  Web pages
  3005.  
  3006.     http://motserv.indirect.com (Motorola)
  3007.         - Motorola's semiconductor WWW page
  3008.         - on-line searchable Master Selection Guide and OEM Price Book
  3009.         - 'MFax' service to request all kinds of data sheets
  3010.         - a bunch of other cool stuff
  3011.  
  3012.     http://freeware.aus.sps.mot.com/index.html (Motorola)
  3013.         - Motorola's microcontroller WWW page
  3014.         - the WWW version of the freeware BBS
  3015.         - lots of free software for the HC05, HC08, HC11, HC16, 680x0,
  3016.           683xx, and
  3017.             PowerPC
  3018.  
  3019.     http://www.ultranet.com/biz/mchip
  3020.         - source of information on the Microchip PIC
  3021.  
  3022.     http://www.dnai.com/~jfox
  3023.         - source of information and software on the MuP21 Forth
  3024.           microcontroller
  3025.  
  3026.     http://www.cera.com
  3027.         - embedded systems information
  3028.  
  3029.     http://www.parallaxinc.com
  3030.         - Parallax Inc. web page
  3031.           "Cool PIC development tools & the BASIC Stamp"
  3032.  
  3033.     http://www.ba-karlsruhe.de/automation/home.html
  3034.         - automation and process control
  3035.  
  3036.  
  3037. 10.3)  BBSs
  3038.  
  3039.     The following BBSs have 8051 information:
  3040.  
  3041.     Circuit Cellar, Inc.
  3042.         - contains code from their magazine articles and from the
  3043.           original Circuit Cellar articles in Byte magazine, also
  3044.           contains many other interesting items
  3045.         - The BBS is mentioned in the masthead of each issue (on the
  3046.           table of contents page).  Excerpts from the BBS appear in Ken
  3047.           Davidson's ConnecTime column in every issue with a description
  3048.           of how to access the system at the end of every column.
  3049.         - (203)871-1988
  3050.         - Voice: (203)875-2751
  3051.         - Fax: (203)872-2204
  3052.  
  3053.     Dunfield Development Systems
  3054.         - support for their Micro-C C compiler and development tools
  3055.         - includes a lot of nice goodies - CHECK THIS OUT!
  3056.         - (613) 256-6289
  3057.  
  3058.     Electronics Now
  3059.         - contains code from their magazine articles
  3060.         - (516)293-2283
  3061.         - 1200/2400, 8N1
  3062.  
  3063.     Intel American Marketing Applications Support Bulletin Board System
  3064.         - 16 lines, hi-speed modems (14.4K)
  3065.         - Lots of useful info and files (including design examples)
  3066.         - Full ANSI-BBS with color is recommended, but support for just
  3067.           about all terminal types is provided
  3068.         - 916-356-3600 (24 hours)
  3069.           Auto config: 1200 thru 14.4K Baud
  3070.           8 data bits, no parity, 1 stop
  3071.  
  3072.     Iota Systems, Inc.
  3073.         - Support for their line of hardware and software products
  3074.         - (702)831-4732
  3075.  
  3076.     Don Lekei BBS
  3077.         - support for the PIC line of microcontrollers
  3078.         - (604)597-3479 (Canada)
  3079.  
  3080.     Microchip BBS
  3081.         - support for the PIC line of microcontrollers
  3082.         - Contact by dialing the same number you would use to get to
  3083.           Compuserve at 19200,n,8,1, except that you press +<CR> at the
  3084.           (garbage) prompt, followed by MCHIPBBS as the host (instead of
  3085.           CIS).
  3086.  
  3087.     ED Teck. Pubs BBS
  3088.         - run by Fred Eady who writes for hobbyist magazines
  3089.         - good source of information on the PIC
  3090.         - (407)454-3198
  3091.  
  3092.     National Semiconductor COP8 BBS
  3093.         - (800)672-6427
  3094.         - worldwide telnet to nscmicro.nsc.com
  3095.  
  3096.     Protel (Microchip PIC software support)
  3097.         - (408)243-0125
  3098.  
  3099.     Parallax Inc.
  3100.         - (916)624-7101
  3101.  
  3102.     Motorola (Austin Texas) BBS
  3103.         - terrific, has piles of stuff, only some of which is on
  3104.           bode.ee.ualberta.ca
  3105.         - (512) 891-3733 (Austin, Texas)
  3106.         - V.32 9600 Baud modems w/ MNP-5
  3107.         - 8 Data Bits, No Parity, 1 Stop Bit.
  3108.  
  3109.     Other Motorola BBSs:
  3110.         - Munich, Germany:  49-89-92103-111  (2400 baud)
  3111.         - Stuttgart, Germany:  49-7031-275496  (19200 baud)
  3112.         - San Diego, California:  (619) 279-3907
  3113.         - Toronto, Ontario, Canada:  (416) 497-8989
  3114.  
  3115.     Philips Semiconductor (parent company of Signetics)
  3116.         - support for: standard logic, programmable logic,
  3117.           in-car electronics (planned), 8 and 16 bit microcontrollers,
  3118.           I2C software, third party software, discrete semiconductors,
  3119.           cross assemblers (general), RF (planned)
  3120.         - PHIBBS is located in the Netherlands: +31-40-721102
  3121.         - maximum 14400 baud / V42bis
  3122.         - 24 hours a day available
  3123.         - Help desk: +31-40-722749  (9.00 AM - 16.00 PM CET)
  3124.  
  3125.     Philips Semiconductors (Signetics)
  3126.         - support for their 8051 variants
  3127.         - contains many good source code items
  3128.         - partially mirrored on ftp.pppl.gov and nic.funet.fi
  3129.         - (800)451-6644 or (408)991-2406
  3130.  
  3131.  
  3132. 10.4)  Mailing Lists
  3133.  
  3134.     listserv@oberon.com
  3135.         - mailing list for the Mini Board and 6.270 board
  3136.         - send a message containing the word "help" for directions
  3137.         - mailing list address:  robot-board@oberon.com
  3138.         - maintainer:  gkulosa@oberon.com
  3139.  
  3140.     listserv@hipp.etsu.edu
  3141.         For information, send empty message.
  3142.         To subscribe, send message with the body:
  3143.            subscribe mc68hc11 your_real_name
  3144.  
  3145.     listserv@netcom.com - mailing list for Imagecraft C
  3146.         to join the mailing list, send the message "subscribe icc11-list"
  3147.  
  3148.     listserv@mitvma.mit.edu
  3149.         to join, send the message "SUB PIC"
  3150.         list address is: PIC@mitvma.mit.edu
  3151.         to receive the mailing list as a digest, send the message
  3152.            SET PIC DIGEST
  3153.  
  3154.     majordomo@first.gmd.de
  3155.         to join, send the message "subscribe crossgcc <your address>"
  3156.            in the message body
  3157.         Cross GCC mailing list - for building a cross gcc compiler for
  3158.            your embedded system.
  3159.  
  3160.     Philips-News@InetBSystems.us.com
  3161.         - send Email with "subscribe" in the subject field to be put
  3162.           on list for newsletter
  3163.     Philips-archive@InetBSystems.us.com
  3164.         - send Email message with the word "help" in the subject line to
  3165.           learn how to access the archive
  3166.     Philips-forum-request@InetBSystems.us.com
  3167.         - send an Email message with the word "subscribe" in the subject
  3168.           line to participate in the forum, and receive usage
  3169.           instructions and guidelines
  3170.     Philips-Info@InetBSystems.us.com
  3171.         - send Email message to get information on all of Philips Email
  3172.           services
  3173.  
  3174.     MISC@pisa.rockefeller.edu
  3175.     MISC-d@pisa.rockefeller.edu (digested list)
  3176.         - a message with "subscribe" on the subject line to one of these
  3177.           addesses you will get you signed up
  3178.         - a message with "help" on the subject line you will get info on
  3179.           how the mail list works
  3180.  
  3181.     Minds-Online mailing lists
  3182.         - One mailing list is for announcing significant postings on the
  3183.           Minds-Online ftp site.
  3184.         - Another MODERATED mailing list will carry messages from real
  3185.           engineers who are working on designs slated for volume
  3186.           production.  "No tire-kickers, no students, no academics, no
  3187.           sleazy something-for-nothing ripoff artists, no hobbyists, and
  3188.           no totally lost people will be able to post e-mail."  (Uh, it
  3189.           looks like that sort of leaves out yours truly, I certainly
  3190.           belong in several, if not most, of those categories).
  3191.         - send an email request to csmall@tiac.net to be added to these
  3192.           lists
  3193.  
  3194.     Parallel Performance Group (PPG) mailing lists
  3195.         - PPG is a provider of high-tech Unix- and PC-based scientific,
  3196.           engineering, and graphics software.  PPG publishes a free
  3197.           monthly electronic-mail newsletters covering a number of
  3198.           disciplines of interest to the microcontroller designer.
  3199.         - For more information, send email to: info@ppginc.com
  3200.  
  3201.  
  3202. __________________________________________________________
  3203.  
  3204. I disclaim everything.  The contents of this article might be totally
  3205. inaccurate, inappropriate, misguided, or otherwise perverse - except for
  3206. my name (hopefully I got that right).
  3207.  
  3208. Copyright (c) 1995 by Russell Hersch, all rights reserved.
  3209. This FAQ may be posted to any USENET newsgroup, on-line service, or BBS
  3210.   as long as it is posted in its entirety and includes this copyright
  3211.   statement.
  3212. This FAQ may not be distributed for financial gain.
  3213. This FAQ may not be included in commercial collections or compilations
  3214.    without express permission from the author.
  3215.  
  3216. -----------------------------------
  3217. Russ Hersch - sibit@datasrv.co.il
  3218.